2013-10-25 37 views
2

任何人都可以幫助我..?如何使用C#讀取/加載datagridview中的文本(* .txt)文件值?

在這裏,我需要在我的datagridview中讀取/加載文本(* .txt)文件的值。這是我需要加載的示例文本文件。

S.NO Data1 Data2 Data3 Data4 Data5 Data6 Data7 Data8 Data9 Data10 

1  8.3  2  9.1  3  7.5  1  25  1.5  22  1.7 
2  5.6  4  8.2  6  8.6  3  26  2.5  23  2.3 
3  8.7  6  7.3  9  9.3  5  28  3.5  26  3.7 
4  2.9  8  6.4  12  4.9  7  12  4.5  24  4.3 
5  4.6 10  5.5  15  5.7  9  25  5.5  25  5.3 

誰能目前如何將這些文本文件中值加載到我的datagridview的單元格,這些標題像數據1,數據2,... DATA10必須加載在列標題,其餘行值應在單獨的細胞加載datagridview根據它們的列標題。

在此先感謝。

+2

請檢查http://www.csharp-station.com/HowTo/ReadWriteTextFile.aspx – Rohit

+0

您好,歡迎來到SO!請閱讀[FAQ](http://stackoverflow.com/help/how-to-ask)瞭解如何提出一個好問題。與此同時,您可以向我們提供一些代碼,顯示您迄今爲止所嘗試的內容。 – wonko79

+0

你應該展示你所做的努力..... – vikky

回答

2

一種方式來做到這一點是:

var lines = File.ReadAllLines("input.txt"); 
if (lines.Count() > 0) 
{ 
    foreach (var columnName in lines.FirstOrDefault() 
     .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries)) 
    { 
     dataGridView1.Columns.Add(columnName, columnName); 
    } 
    foreach (var cellValues in lines.Skip(1)) 
    { 
     var cellArray = cellValues 
      .Split(new[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); 
     if (cellArray.Length == dataGridView1.Columns.Count) 
      dataGridView1.Rows.Add(cellArray); 
    } 
} 

當然,這適用於您提供的樣本輸入文件。對該格式的任何變化都需要進一步驗證並增加代碼的複雜性。

3

試試這個..

 System.IO.StreamReader file = new System.IO.StreamReader("yourfile.txt"); 
     string[] columnnames = file.ReadLine().Split(' '); 
     DataTable dt = new DataTable(); 
     foreach (string c in columnnames) 
     { 
      dt.Columns.Add(c); 
     } 
     string newline; 
     while ((newline = file.ReadLine()) != null) 
     { 
      DataRow dr = dt.NewRow(); 
      string[] values = newline.Split(' '); 
      for (int i = 0; i < values.Length; i++) 
      { 
       dr[i] = values[i]; 
      } 
      dt.Rows.Add(dr); 
     } 
     file.Close(); 
     dataGridView1.DataSource = dt; 

不要氣餒,但這不是問一個問題在這裏對SO的正確方法。請先讓你自己熟悉。

1
 this.Size = new Size(750, 450); 
     data.Size = new Size(700, 200); 
     data.Location = new Point(5, 40); 

     string[] raw_text = System.IO.File.ReadAllLines("Etudiant.txt"); 
     string[] data_col = null; 

     int x = 0; 

     foreach (string text_line in raw_text) { 
      //MessageBox.Show(text_line); 
      data_col = text_line.Split('|'); 

      if (x == 0){ 
       //header 
       for (int i=0; i <= data_col.Length - 1; i++) { 
        table.Columns.Add(data_col[i]); 
       } 
       x++; 
      } 
      else { 
       //data 
       table.Rows.Add(data_col); 
      } 
     } 

     data.DataSource = table; 
     this.Controls.Add(data); 
+1

雖然這段代碼可能回答這個問題,但提供關於如何解決問題和/或爲什麼解決問題的額外上下文會提高答案的長期價值。 –