6
juin
2011
Encore un convertisseur csv–>xml
juin
2011
Je parie que powershell pourrait faire ça très bien en 1 malheureuse ligne, mais je voulais bricoler un peu de c#…
Le coeur du programme repose sur cette routine retrouvée quelque part, et plus que certainement perfectible.
Néanmoins, cela remplissait le modeste objectif que je lui avais fixé, c’est à dire, convertir un vilain fichier csv en un vilain fichier xml, sans finasser sur les attributs, les intiulés de noeuds, etc…
//toupiqué quelquepart, gloire à son auteur ... string _root = "list"; string _node = "node"; char _separator = ';'; string pathSource; string pathDestination; StreamReader stream = null; string[] saEntetes = null; string sLigne = ""; pathSource = linkLabel1.Text; pathDestination = linkLabel2.Text; DataSet csvDataSet = null; DataTable csvDataTable = null; try { csvDataSet = new DataSet(_root); csvDataTable = new DataTable(_node); stream = new StreamReader(pathSource); sLigne = stream.ReadLine(); saEntetes = sLigne.Split(_separator); for (int i = 0; i < saEntetes.Length; i++) { // formatage des éléments du fichier XML csvDataTable.Columns.Add(saEntetes[i].ToString()); } sLigne = stream.ReadLine(); while (sLigne != null) { csvDataTable.Rows.Add(sLigne.Split(_separator)); sLigne = stream.ReadLine(); } csvDataSet.Tables.Add(csvDataTable); csvDataSet.WriteXml(pathDestination); } finally { stream.Close(); if (csvDataSet != null) csvDataSet.Dispose(); if (csvDataTable != null) csvDataTable.Dispose(); MessageBox.Show("Done!","VP CSV->XML"); }