C# 如何从C中的.txt文件分割空间来填充dataGridView#

C# 如何从C中的.txt文件分割空间来填充dataGridView#,c#,C#,我需要帮助:-) 我有一个file.txt,内容如下: 00001 JhonKey 023301923 00002 Hercules 023039910 COL1 | COL2 | COL3 ----------------------------------- 00001 | JhonKey | 023301923 00002 | Hercules | 023039910 我想通过datatable将此文件加载到d

我需要帮助:-)

我有一个file.txt,内容如下:

00001    JhonKey     023301923
00002    Hercules    023039910
COL1    |    COL2      |  COL3
-----------------------------------
00001   |    JhonKey   | 023301923
00002   |    Hercules  | 023039910
我想通过datatable将此文件加载到datagridview,结果应保存在datagrid中,如下所示:

00001    JhonKey     023301923
00002    Hercules    023039910
COL1    |    COL2      |  COL3
-----------------------------------
00001   |    JhonKey   | 023301923
00002   |    Hercules  | 023039910
我正在尝试以下代码:

 using (StreamReader SR = new StreamReader(txtFileName)) 
        {
            int row = 0;
            string line;
            while ((line = SR.ReadLine())!= null)
            {
                string[] Columns = line.Split(',');
                dataGridView2.Rows.Add();
                for (int i = 0; i < Columns.Length; i++)
                {
                    dataGridView2[i, row].Value = Columns[i];
                }
                row++;
            }
        }

查看line string[]Columns=line.Split(','); 您尝试按逗号分隔行,但文件中没有逗号。尝试按空格分割。 像


然后您的数据将被正确地添加到列和行中。你应该读更多的教程。因为这个问题是在Stackoverflow中提出的。你可以阅读这个问题。我希望这段代码能帮助你。

你的意思是使用断点?很好,这很管用,但我必须按照file.txt上使用的空间曲调创建拆分空间。下面我的答案是:创建拆分空间,按照file.txt上使用的空间曲调创建拆分空间,如下所示:string[]Columns=line.split(“”);
string[] Columns = line.Split(new []{' '}, StringSplitOptions.RemoveEmptyEntries)
using System.Data;
using System.IO;


public class FromYourFileToGrid
{

 public static DataTable DataTableFromYourTextFile(string directory, char splitter=',')
 {
     DataTable result;

     string[] LineArray = File.ReadAllLines(directory);

     result = FormDataTable(LineArray, splitter);

     return result;
 }


 private static DataTable FormDataTable(string []LineArray, char splitter)
 {
     bool IsHeaderSet = false;

     DataTable dt = new DataTable();

     AddColumnToTable(LineArray, splitter, ref dt);

     AddRowToTable(LineArray, splitter, ref dt);

     return dt;
 }


 private static void AddRowToTable(string []valueCollection, char splitter, ref DataTable dt)
 {

     for (int i = 1; i < valueCollection.Length; i++)
     {
     string[] values = valueCollection[i].Split(splitter);

     DataRow dr = dt.NewRow();

     for (int j = 0; j < values.Length; j++)
     {
         dr[j] = values[j];
     }

     dt.Rows.Add(dr);
     }
 }


 private static void AddColumnToTable(string []columnCollection, char splitter, ref DataTable dt)
 {
     string[] columns = columnCollection[0].Split(splitter);

     foreach (string columnName in columns)
     {
     DataColumn dc = new DataColumn(columnName, typeof(string));
     dt.Columns.Add(dc);
     }

 }

}
dataGridView1.DataSource =       FromYourFileToGrid.DataTableFromYourTextFile("file.txt", '|');