Soyez le premier à donner votre avis sur cette source.
Vue 11 088 fois - Téléchargée 903 fois
// Exemple d'utilisation (fourni dans le zip) : try { CSVSharp.CSVSharp.Separators separator = CSVSharp.CSVSharp.Separators.Semicolumn; CSVWriter writer = new CSVWriter("export.csv", separator); writer.HeaderToCapitalLetters = true; // Insert a character like the separator you chosen to test that property writer.CheckTableContentSeparatorConflicts = true; #region DataTable Setting DataTable dt = new DataTable("CSV"); dt.Columns.Add("MembreID", Type.GetType("System.Int32")); dt.Columns.Add("Nom", Type.GetType("System.String")); DataRow dr = dt.NewRow(); dr[0] = 1; dr[1] = "Eric"; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = 2; dr[1] = "Marion"; dt.Rows.Add(dr); dr = dt.NewRow(); dr[0] = 3; dr[1] = "Amélie"; dt.Rows.Add(dr); Console.WriteLine("Export running..."); #endregion writer.CreateCSVFromDataTable(dt, true); CSVReader reader = new CSVReader("export.csv", separator, true); dt = reader.CreateDataTableFromCSV(); #region Display of the content Console.Write("\nHEADER: "); if (reader.FirstRowIsHeader) Console.WriteLine("There are headers.\n"); else Console.WriteLine("There are no headers.\n"); Console.WriteLine("Dataset columns list:\n"); foreach (DataColumn d in dt.Columns) { Console.WriteLine("\t" + d.ColumnName); } Console.WriteLine("\nDataset columns list:\n"); foreach (DataRow d in dt.Rows) { Console.WriteLine("\t{0} - {1}", d[0], d[1]); } Console.WriteLine("\nImport done!"); #endregion } catch (CSVDataTableConflictsException ex) { Console.WriteLine(ex.Message); } catch (Exception ex) { Console.WriteLine(ex.Message + "\n" + ex.StackTrace); } finally { Console.ReadKey(); }
29 juin 2008 à 00:19
20 janv. 2008 à 18:23
GetSeparator retourne le Seperator courant (issu de l'enum). Pourquoi ne pas appelé simplement ToString sur l'enum par exemple? La méthode me paraît pas spécialement indispensable...
Une classe abstract sans méthode abstract a t'elle vraiment un sens? Je n'en suis pas vraiment persuadé... Si c'est juste pour mettre une méthode ou une ou deux properties en commun, alors tu ferais mieux de les dupliqué dans chacune des classes (voire faire une classes commune, non abstraite, mais là encore, niveau conception, je ne pense pas que ça soit l'idéal...)
20 janv. 2008 à 18:07
CSVSaveFileDialog permet d'avoir un SaveFileDialog customisé... on peut choisir l'extension de fichiers... et ce en rapport avec l'utilisation de fichiers csv. Un peu gadget mais je l'utilise bel et bien...
GetSeparator permet en interne de retrouver le caractère du séparateur spécifié... elle est utilisée par les classes CSVReader et CSVWriter d'ou un héritage de la classe CSVSharp et on ne peut pas l'implémenter donc je l'ai mise abstract. Si ce n'est pas juste, qu'aurais-tu mis ?
20 janv. 2008 à 17:56
- La classe CSVSaveFileDialog n'est vraiment pas utile! Du moins, je ne vois pas son utilité...
- Je suis sceptique concernant la classes CSVSharp. Est-elle vraiment utile, pourquoi abstract? Visiblement non, ou en tout cas tu n'utilises pas les concepts donnés par une telle classes abstraite.
- La méthode GetSeparator est-elle vraiment utile??
Voilà voilà pour une première lecture.
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.