另一种文件读取方法(FileHelpers)

1:前言

     本文介绍一个开源的文件读取类库,给大家提供另外一种文件读取的方法。

     项目名称:FileHelpers

     项目地址:http://www.filehelpers.com/

2:Example

 

ExpandedBlockStart.gif 代码
using  System;
using  System.Collections.Generic;
using  System.Linq;
using  System.Text;

using  FileHelpers;
using  FileHelpers.DataLink;

namespace  ConsoleApplication
{

    [DelimitedRecord(
" \t " )]
    
public   class  LogInfo
    {
        [FieldConverter(ConverterKind.Date, 
" yyyy-MM-dd HH:mm:ss.FFF " )]
        
public  DateTime DateTime;

        
public   string  empty;

        
public   string  Method;
        
public   string  IsSuccess;
        
public   string  ElapsedMilliseconds;
        
public   string  TnsName;
        
public   string  CommandText;
    }


    
class  Program
    {

        
protected   static   string  GetInsertSqlCust( object  record)
        {
            LogInfo obj 
=  (LogInfo)record;

            
return   string .Format(
                
" INSERT INTO Info  "
                
+ " ([DateTime] "
                
+ " ,[Methord] "
                
+ " ,[IsSuccess] "
                
+ " ,[ElapsedMilliseconds] "
                
+ " ,[TnsName] "
                
+ " ,[CommandText]) "
                
+ "  VALUES  "
                
+ " ('{0}' "
                
+ " ,'{1}' "
                
+ " ,{2} "
                
+ " ,{3} "
                
+ " ,'{4}' "
                
+ " ,'{5}') " ,
                obj.DateTime.ToString().Replace(
" ' " " \ "" ),
                obj.Method.Replace( " ' " " \ "" ),
                obj.IsSuccess.Replace( " ' " " \ "" ),
                obj.ElapsedMilliseconds.Replace( " ' " " \ "" ),
                obj.TnsName.Replace( " ' " " \ "" ),
                obj.CommandText.Replace( " ' " " \ "" )
                );

        }

        
static   void  Main( string [] args)
        {
            
            FileHelperEngine engine 
=   new  FileHelperEngine( typeof (CustomersTabIgnored3));

            CustomersTabIgnored3[] res 
=  (CustomersTabIgnored3[])engine.ReadFile( @" E:\Server\DACServer\log\Info\2010-04-09 16.log " );

            
foreach  (CustomersTabIgnored3 record  in  res)
            {
                Console.WriteLine(record.DateTime.ToString());
                Console.WriteLine(record.Method);
                Console.WriteLine(record.IsSuccess);
                Console.WriteLine(record.ElapsedMilliseconds);
                Console.WriteLine(record.TnsName);
                Console.WriteLine(record.CommandText);
            }

            Console.ReadLine();
            

            SqlServerStorage storage 
=   new  SqlServerStorage( typeof (LogInfo));

            storage.ServerName 
=   " 127.0.0.1 " ;
            storage.DatabaseName 
=   " LogInfo " ;

            storage.InsertSqlCallback 
=   new  InsertSqlHandler(GetInsertSqlCust);

            
try
            {
                FileDataLink link 
=   new  FileDataLink(storage);
                link.InsertFromFile(
@" E:\Server\DACServer\log\Info\2010-04-09 16.log " );
            }
            
catch  (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }

        }
    }
}

 3:后记

     该框架是值类型与引用类型的另一种转换方式。还有一个文档数据库(好像是编译不通过,随后我在细致的看看,地址是:http://groups.google.com/group/ravendb/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值