2011-03-08 3 views
4

이것은 아마도 덤프 질문이지만 시도해 보겠습니다.ASCII 파일 가져 오기/매핑에 대한 C# 라이브러리

일반적인 작업 중 하나는 ASCII 파일에서 데이터를 가져 오는 것입니다. 파일의 구조와 거의 항상 같습니다. 쉼표로 구분, 줄 분리, 5 행 걸릴 12 ... 뭐든간에 ... 그래서 항상 다른 프로토콜/매핑하지만 같은 처리 ...

지원하는 데 도움이되는 C# 용 라이브러리가 있습니까? 이 매일의 시나리오?

답변

4

이 굉장 : FileHelpers Library

예 :

파일 :

1732,Juan Perez,435.00,11-05-2002 
554,Pedro Gomez,12342.30,06-02-2004 
112,Ramiro Politti,0.00,01-02-2000 
924,Pablo Ramirez,3321.30,24-11-2002 

이 데이터를 매핑하는 클래스를 만듭니다.

[DelimitedRecord(",")] 
public class Customer 
{ 
    public int CustId; 

    public string Name; 

    public decimal Balance; 

    [FieldConverter(ConverterKind.Date, "dd-MM-yyyy")] 
    public DateTime AddedDate; 

} 

그리고 사용 분석 :

FileHelperEngine engine = new FileHelperEngine(typeof(Customer)); 

// To Read Use: 
Customer[] res = engine.ReadFile("FileIn.txt") as Customer[]; 

// To Write Use: 
engine.WriteFile("FileOut.txt", res); 

열거 :

foreach (Customer cust in res) 
{ 
    Console.WriteLine("Customer Info:"); 
    Console.WriteLine(cust.Name + " - " + 
        cust.AddedDate.ToString("dd/MM/yy")); 
} 
1

이러한 작업의 공통점은 텍스트 파일을 읽는 것뿐입니다.

당신 (간단한 텍스트 데이터 등)에 대한 과잉이다 FileHelpers 경우, 표준 .NET 클래스를 사용하면 (String.Split Method, Regex Class, StreamReader Class)을 필요로하는 모든이어야합니다.

글자 (String.Split) 또는 줄 (StreamReader)로 구분 된 읽기를 제공합니다.

+1

프레임 워크의 표준 TextFieldParser 클래스는 말할 것도 없습니다. –

+0

@Hans Passant : 그렇습니다.하지만 VB가 아닌 비폭력 프로그래머를위한 것입니다 : -P (어셈블리 지향적 인 의미입니다) –

관련 문제