J'ai besoin d'exporter un ensemble de données dans un fichier CSV.
J'ai passé un certain temps à chercher un ensemble de règles à suivre et je me suis rendu compte qu'il existe un certain nombre de règles et d'exceptions lors de l'écriture d'un fichier CSV.
http://knab.ws/blog/index.php?/archives/3-CSV-file-parser-and-writer-in-C-Part-1.html http://bytes.com/topic/c-sharp/answers/236875-problems-streamwriter-output-csv http://social.msdn.microsoft.com/forums/en-US/csharpgeneral/thread/0073fcbb-adab-40f0-b768-4bba803d3ccd
Maintenant, ce n'est pas un simple processus de séparation des chaînes de caractères avec des virgules, j'ai cherché un rédacteur CSV existant, soit d'une tierce partie, soit (espérons-le !) inclus dans le cadre .net.
Edit : Nouveau lien : http://www.thinqlinq.com/Post.aspx/Title/LINQ-to-CSV-using-DynamicObject-and-TextFieldParser
Le TextFieldParser est un objet VB (qui peut être référencé à partir de C#) qui analyse automatiquement les fichiers CSV. :)
Je me demandais si quelqu'un connaissait des bibliothèques .Net (2.0 -> 3.5 et 4.0) pratiques pouvant être utilisées pour générer un fichier CSV correctement formaté.
De même, s'il existe des ensembles de règles pour la génération de fichiers CSV.
Il y a beaucoup de détails sur les lecteurs CSV et l'analyse des fichiers CSV, mais pas autant sur l'écriture (ok, je sais que c'est tout le contraire :P ).
http://www.codeproject.com/KB/database/CsvReader.aspx
Toute aide serait très appréciée :)
J'ai trouvé un autre article avec des règles CSV plus détaillées : http://www.creativyst.com/Doc/Articles/CSV/CSV01.htm
Une bibliothèque tierce bien conçue est Linq-to-CSV (pas une bibliothèque de cadre) : http://www.codeproject.com/KB/linq/LINQtoCSV.aspx
Merci pour votre aide à tous. J'ai décidé que la meilleure solution sera de créer une simple classe statique qui fera le remplacement des caractères spéciaux (que Chris a mentionné).
Si j'avais besoin que Linq interroge mes fichiers CSV, je regarderais l'implémentation de Linq-to-CSV de CodeProjects.
Merci encore :)