gpt4 book ai didi

c# - 解析制表符分隔的文本文件

转载 作者:行者123 更新时间:2023-11-30 18:58:42 33 4
gpt4 key购买 nike

例如,我有一个包含某些列和行的制表符分隔文件:某些行可能对某些列没有值(value)。我们所知道的是“顺序”不会改变,所以第三个制表符分隔的东西总是用于 Column3 等等。

Column1  Column2  Column3 .... Column12 .... Column34 ... Column50
123 34 ABC
234 DEF as@ddd.com True
45 NYC wwe@dsds.com False

现在我需要阅读这个文件,但并不是所有的列对我的程序都很重要。例如,我只需要用 Column2、Column12、Column45 中的值做一些事情

您建议采用哪种方法?

最佳答案

尝试以下方法

static void Main(string[] args)
{
DataTable datatable = new DataTable();
StreamReader streamreader = new StreamReader(@"C:\Temp\txt.txt");
char[] delimiter = new char[] { '\t' };
string[] columnheaders = streamreader.ReadLine().Split(delimiter);
foreach (string columnheader in columnheaders)
{
datatable.Columns.Add(columnheader); // I've added the column headers here.
}

while (streamreader.Peek() > 0)
{
DataRow datarow = datatable.NewRow();
datarow.ItemArray = streamreader.ReadLine().Split(delimiter);
datatable.Rows.Add(datarow);
}

foreach (DataRow row in datatable.Rows)
{
Console.WriteLine(""----Row No: " + datatable.Rows.IndexOf(row) + "----"");

foreach (DataColumn column in datatable.Columns)
{
//check what columns you need
if (column.ColumnName == "Column2" ||
column.ColumnName == "Column12" ||
column.ColumnName == "Column45")
{
Console.Write(column.ColumnName);
Console.Write(" ");
Console.WriteLine(row[column]);
}
}
}
Console.ReadLine();
}

关于c# - 解析制表符分隔的文本文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23225973/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com