使用C#读取文本文件中的特定列

时间:2018-12-04 20:20:01

标签: c#

我有一个基于列的txt文件。如何以编程方式读取任何特定的列?

到目前为止,我想出了一种解决方案,它读取指定的列索引,例如:firstValue [0]将读取文本文件中的所有(1)。

如果我这样写,那么我就能很好地阅读前三个索引,但是必须有一种更简洁的方法。

  

Console.WriteLine(string.Join(“”,firstValue [0],firstValue 1,firstValue [2],firstValue [3]));

如果有一种方法我可以对文本文件中的列进行计数,而不是选择要读取的列的索引;那将是理想的。

我想读: 121 122 123 124

  

我在网上搜索了类似的问题,但他们并没有我想要的。

        string[] lines = File.ReadAllLines(YourFile);
        foreach (var line in lines)
        {
            var firstValue = line.Split(new string[] { "        " }, StringSplitOptions.RemoveEmptyEntries)[0];                
            Console.WriteLine(firstValue[0]);
            //Console.WriteLine(string.Join("", firstValue[0], firstValue[1], firstValue[2], firstValue[3]));
        }


        Console.ReadKey();

enter image description here

2 个答案:

答案 0 :(得分:0)

您可以尝试以下一种方法:

LOCALE_ID

应该添加其他检查,但是您可以找到一个主意。

答案 1 :(得分:0)

问题是,像这样拆分它:

var firstValue = line.Split(new string[] { " " }, StringSplitOptions.RemoveEmptyEntries);

firstValue等于在foreach循环中这样的串联字符串121 20412 010

enter image description here


因此,我尝试了另一种方法:

var firstValue = line.Split(new string[] { "\t" }, StringSplitOptions.RemoveEmptyEntries);

哪个索引了列,所以我可以选择我想要数据来自哪一列。

        foreach (var line in lines)
        {
            var firstValue = line.Split(new string[] { "\t" }, StringSplitOptions.RemoveEmptyEntries);
            Console.WriteLine(firstValue[2]);                
        }

输出:

  

010

     

020

     

030

     

040