Existe-t-il une bonne et libre implémentation de l'analyseur CSV disponible sous une licence libérale ? Une contrepartie de SuperCSV pour Java, peut-être un port ?
Réponses
Trop de publicités?Il y a une belle implémentation sur CodeProject :
Pour donner des chiffres plus concrets, avec un fichier CSV de 45 Mo contenant 145 champs et 50 000 enregistrements, le lecteur traitait environ 30 Mo/sec. Donc, en tout, cela a pris 1,5 seconde ! Les spécifications de la machine étaient les suivantes : P4 3.0 GHz, 1024 Mo.
Vous pouvez charger un fichier CSV dans DataTable.
Exemple de code -
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;
}
Assurez-vous de compiler votre projet pour un processeur x86. Il ne fonctionne pas pour x64.
Essayez fichiers d'aide Ils fonctionnent étonnamment bien. Je l'utilise pour analyser un fichier de 100 Mo tous les jours.