2010-05-13 6 views
0

J'ai une fonction à laquelle un tableau a une grande quantité de données fractionnées importées au format CSV. Je l'ai actuellement défini comme le code ci-dessous, mais j'ai quelques problèmes pour obtenir les données à aller dans les colonnes séparées que dans un seul. Ce que je voudrais réaliser est un moyen non redondant de fournir une fonction à un tableau de chaînes de n'importe quelle taille, et de définir combien de colonnes à travers les données doivent être lues avant de l'ajouter comme une ligne dans le DataGrid.C# DataGrid CSV Importation de n'importe quel tableau de taille dans une grille de colonnes définie?

private string csvtogrid(string input, columns) 
    { 
     input = input.Replace("\r", ",").Substring(2).TrimEnd(',').Trim().Replace("\n", ",").Replace(",,,", ",").Replace(",,",","); 
     string[] repack = input.Split(','); 
     string[] cell = new string[columns]; 
     int rcell = 0; 
     for (int counter = 1; counter < repack.Length; counter++) 
     { 
      if (rcell < columns) 
      { 
       cell[rcell] = repack[counter]; 
       rcell++; 
      } 
      //MessageBox.Show(cell[0] + cell[1] + cell[2]); 
      procgrid.Rows.Add(cell[0], cell[1], cell[2]); 
      rcell = 0; 
     } 
     return null; 
    } 
+0

Alors, quelle est votre question? –

Répondre

0

La méthode la plus fiable et facile que j'ai jamais trouvé de lire dans les fichiers csv est la classe TextFieldParser. Il se trouve dans l'espace de noms Microsoft.VisualBasic.FileIO donc il n'est probablement pas référencé par defaukt si vous utilisez C# mais il devrait être dans le gac pour que vous puissiez y faire référence.

+0

Eh bien, mon problème ne réside pas dans l'importation d'un fichier CSV, mais dans le fait que les données que je récupère sont mises au format CSV et stockées dans une chaîne. Ce que je veux accomplir est de passer une chaîne à une fonction et lui dire combien de colonnes a une grille de données particulière. Tout ce que la fonction ferait est juste de remplir les cellules sur la ligne puis passer à la suivante. Par exemple, les noms de colonnes "fname, lname, address". Si je dis à la fonction qu'il y a 3 colonnes, je voudrais qu'il remplisse chaque ligne avec les données d'une chaîne/tableau au format CSV comme elles sont commandées de cette façon. – MWC

Questions connexes