자유 라이선스하에 사용 가능한 CSV 파서의 훌륭하고 무료 구현이 있습니까? Java 용 SuperCSV의 일부 , 아마도 포트?
답변
답변
CodeProject에 멋진 구현이 있습니다 .
145 개의 필드와 50,000 개의 레코드를 포함하는 45MB CSV 파일로 더 많은 정보를 제공하기 위해 독자는 약 30MB / 초를 처리했습니다. 전체적으로 1.5 초가 걸렸습니다! 기계 사양은 P4 3.0GHz, 1024MB입니다.
답변
CSV 파일을 DataTable에로드 할 수 있습니다.
샘플 코드-
static DataTable CsvToDataTable(string strFileName)
{
DataTable dataTable = new DataTable("DataTable Name");
using (OleDbConnection conn = new OleDbConnection("Provider=Microsoft.Jet.OleDb.4.0; Data Source = " + Directory.GetCurrentDirectory() + "; Extended Properties = \"Text;HDR=YES;FMT=Delimited\""))
{
conn.Open();
string strQuery = "SELECT * FROM [" + strFileName + "]";
OleDbDataAdapter adapter =
new System.Data.OleDb.OleDbDataAdapter(strQuery, conn);
adapter.Fill(dataTable);
}
return dataTable;
}
프로젝트를 x86 프로세서로 컴파일해야합니다. x64에서는 작동하지 않습니다.
답변
filehelpers 사용해 보기 놀랍도록 잘 작동합니다. 매일 100MB 파일을 구문 분석하는 데 사용하고 있습니다.
답변
답변
CommonLibrary.NET의 일부인 CSV 파서를 사용하기 시작했습니다 .
그것은 .NET 3.5를 사용하고, 쉬운 API를 가지고 있으며, 반복을위한 편리한 오버로드 / 방법 및 람다를 가지고 있습니다.
위와 같은 벤치 마크는 없지만 이것에 대한 좋은 점은 Java Commons와 유사한 라이브러리의 한 구성 요소 일 뿐이라는 것입니다. 그래서 다른 것들 중에서도 명령 줄 파서, 저장소 구현을 얻습니다.