Je sais qu'il existe plusieurs bibliothèques de code qui peuvent analyser les fichiers CSV selon la norme, mais pour diverses raisons, j'ai besoin d'une simple routine (pas une bibliothèque entière) qui analyse un fichier CSV dans un DataTable ou un tableau. Un tel animal existe-t-il ou est-il éteint? (De préférence C# mais je peux aussi traduire vb.net)CSV Analyseur dans une routine/fonction?
Répondre
Écrivez votre propre méthode qui boucle sur chaque ligne et utilisez la méthode fractionnée en utilisant la virgule comme délimiteur.
Si vous voulez analyser un fichier CSV en utilisant LINQ, voici un exemple simple:
http://www.fryan0911.com/2009/05/read-data-from-csv-using-linq.html
Mais voir http://www.secretgeek.net/csv_trouble. asp d'abord! –
... puis utilisez le support CSV intégré au framework .NET et supporté par Microsoft. http://stackoverflow.com/questions/2405787/csv-parser-in-one-routine-function/2405898#2405898 – MarkJ
Référence Microsoft.VisualBasic.FileIO
et vous pouvez utiliser TextFieldParser
using (var parser =
new TextFieldParser(@"c:\data.csv")
{
TextFieldType = FieldType.Delimited,
Delimiters = new string[] { "," }
})
{
while (!parser.EndOfData)
{
string[] fields;
fields = parser.ReadFields();
//go go go!
}
}
La rédaction de votre propre analyseur CSV n'est pas facile. Il y a beaucoup de cas limites que vous rencontrerez.
Lire: http://www.secretgeek.net/csv_trouble.asp
@ réponse de Spender est probablement le plus proche que vous obtiendrez en utilisant des trucs intégré.
Donner CsvHelper un essai (une bibliothèque que je maintiens). C'est disponible sur NuGet. C'est très léger. Si vous voulez juste un petit morceau de code, vous pouvez simplement copier la source CsvParser.cs et la modifier un peu. Il y a essentiellement une fonction qui fait tout l'analyse, c'est juste plus de 100 lignes, y compris les commentaires. Si vous voulez une routine unique, ce serait une bonne chose à saisir.
Si vous utilisez la bibliothèque CsvHelper, la lecture dans une collection d'objets de classe personnalisée est facile.
var streamReader = // Create StreamReader to your CSV file.
var csvReader = new CsvReader(streamReader);
var myObjects = csvReader.GetRecords<MyObject>();
- 1. Analyseur CSV avec faible empreinte mémoire pour l'iPhone
- 2. C# Lua Analyseur/Analyseur
- 3. Comment analyser un répertoire pour les fichiers csv, pour un analyseur que j'ai écrit dans asp.net?
- 4. Analyseur AMF0 dans ObjectiveC
- 5. Comment séparer une chaîne CSV dans Ruby?
- 6. Filtrer une liste CSV dans XSLT
- 7. Modifier le délimiteur dans une exportation csv
- 8. Comment convertir une table HTML au format csv?
- 9. analyseur CXMLDocument
- 10. Analyseur HTML
- 11. Expansion de caractères génériques dans une chaîne csv pour générer une collection de chaînes csv?
- 12. Ajouter une ligne au fichier CSV Ruby 1.9 CSV lib
- 13. C++ .net Analyseur HTML
- 14. Analyseur de chaînes PHP
- 15. Analyseur syntaxique léger
- 16. processus csv dans scala
- 17. analyseur .NET HTTP
- 18. Analyseur ANTLR Question
- 19. formation analyseur OpenNLP
- 20. Analyseur Ruby en Java
- 21. Analyseur XML simple dans bison/flex
- 22. Analyseur de site Web
- 23. petit analyseur jquery
- 24. html analyseur codeigniter bibliothèque?
- 25. python2.6 + analyseur de code
- 26. datetime analyseur via tsql
- 27. Très simple analyseur sexp
- 28. Analyseur de code ColdFusion?
- 29. analyseur JavaScript Python
- 30. Analyseur MSXML en Java
Je suis curieux de savoir ce que vous entendez par «la norme». Au meilleur de ma connaissance, il n'y a pas de norme pour CSV. C'est exactement pourquoi vous devriez éviter d'essayer de coder votre propre analyseur - vous ne voulez pas être celui qui traite le CSV mal ordonné de tout le monde, laissez quelqu'un d'autre le faire. Quelles «raisons diverses» justifient d'assumer vous-même ce fardeau? – Aaronaught
[Top 6 façons d'analyser un .CSV? Haute performance!] (Http://izlooite.blogspot.com/2011/06/top-6-ways-to-parse-csv-high.html) –