[c#]DataGridView et fichier Txt

DataGridView et fichier Txt [c#] - C#/.NET managed - Programmation

Marsh Posté le 23-10-2014 à 15:47:32    

Bonjour,
 
débutant en c# j'essaye de faire un tracé de courbes issues de plusieurs fichiers texte. Afin de faire ça j'essaye de créé un tableau à partir de tous mes fichiers chacun de mes fichiers étant une colonne de mon tableau voici mon code  
 

Code :
  1. try
  2.             {
  3.                 int r = 1;
  4.                 int c = 1;
  5.                 string[] txtFiles = Directory.GetFiles(test);
  6.                 foreach (string f in txtFiles)
  7.                 {
  8.                     StreamReader file = new StreamReader(f);
  9.                     string line = file.ToString();
  10.                     while ((line = file.ReadLine()) != null)
  11.                     {
  12.                         AffichePts.Rows[r].Cells[c].Value = line;
  13.                         c++;
  14.                     }
  15.                     r++;
  16.                  }
  17.             }
  18.             catch (Exception d)
  19.             {
  20.                 MessageBox.Show(d.Message);
  21.                 Application.Exit();
  22.             }


 
j'ai aussi essayé ça
 

Code :
  1. DataTable dt = new DataTable();
  2.                 int index = 1;
  3.                 string[] txtFiles = Directory.GetFiles(_CalypsoResultPath + "temp/" );
  4.                 foreach (string f in txtFiles)
  5.                 {
  6.                     string colum = "Courbe" + Convert.ToString(index);
  7.                     System.IO.StreamReader file = new System.IO.StreamReader(f);
  8.                     string[] columnnames = file.ReadLine().Split(' ');
  9.                     foreach (string c in columnnames)
  10.                     {
  11.                         dt.Columns.Add(colum);
  12.                     }
  13.                     string newline;
  14.                     while ((newline = file.ReadLine()) != null)
  15.                     {
  16.                         DataRow dr = dt.NewRow();
  17.                         string[] values = newline.Split(' ');
  18.                         for (int i = 0; i < values.Length; i++)
  19.                         {
  20.                             dr[i] = values[i];
  21.                         }
  22.                         dt.Rows.Add(dr);
  23.                     }
  24.                     index++;
  25.                     file.Close();
  26.                 }
  27. AffichePts.DataSource = dt;


 
La ca créé les colonnes courbe-1 etc mais ca met toutes les valeurs dans la première colonne :/
 
 
J'ai aussi comme autre choix de faire un merge de l'ensemble de mes fichiers ce que j'arrive à faire sauf que les valeurs sont à la suite les unes des autres et non pas en colonne :/
 
Merci d'avance


Message édité par le_pere_noel2 le 23-10-2014 à 17:08:18

---------------
Profil D3 -  D4 incoming - Profil Wow
Reply

Marsh Posté le 23-10-2014 à 15:47:32   

Reply

Marsh Posté le 26-10-2014 à 23:56:44    

Quel est le format des données dans chaque fichier ?
Une valeur par ligne? ou bien toutes sur la même ligne avec un séparateur?

Reply

Marsh Posté le 27-10-2014 à 00:03:21    

ov3rflow a écrit :

Quel est le format des données dans chaque fichier ?
Une valeur par ligne? ou bien toutes sur la même ligne avec un séparateur?


 
j'ai eu ma réponse sur un autre forum mais merci quand même de ton aide ;)


---------------
Profil D3 -  D4 incoming - Profil Wow
Reply

Marsh Posté le 27-10-2014 à 00:06:16    

C'était quoi la réponse ? :whistle:

Reply

Marsh Posté le 27-10-2014 à 10:45:23    

ov3rflow a écrit :

C'était quoi la réponse ? :whistle:


 

Code :
  1. #region Import dans Datagridview
  2.             {
  3.                 //WaitWindow WaitWin = new WaitWindow();
  4.                 //WaitWin.Show();
  5.                 //WaitWin.Refresh();
  6.                 string path = _CalypsoResultPath + "temp/";
  7.                 string[] txtFiles = Directory.GetFiles(path);//récupère le nom des fichiers dans le répertoire
  8.                 List<string[]> fichiers = new List<string[]>(); //parce qu'avec .Add c'est plus simple
  9.                 foreach (string chemin in txtFiles)
  10.                     fichiers.Add(File.ReadAllLines(chemin));//File.ReadAllLines retourne directement un tableau de string contenant chaque lignes
  11.                    
  12.                 for (int i = 0; i < fichiers.Count; i++)//on ajoute autant de colonnes que necessaire
  13.                 {
  14.                     AffichePts.Columns.Add(new DataGridViewTextBoxColumn());
  15.                 }
  16.                 for (int i = 0; i < fichiers[0].Length; i++)//Puisque tous les fichiers ont le même nombre de lignes, je prend la longueur du premier tableau en référence
  17.                 {
  18.                     DataGridViewRow row = AffichePts.Rows[AffichePts.Rows.Add()];//ajoute une ligne  
  19.                     for (int j = 0; j < fichiers.Count; j++)
  20.                         row.Cells[j].Value = fichiers[j][i];//remplit les cellules
  21.                 }
  22.                 //WaitWin.Dispose();
  23.             }
  24.             #endregion


 
voilou


Message édité par le_pere_noel2 le 27-10-2014 à 10:46:01

---------------
Profil D3 -  D4 incoming - Profil Wow
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed