从c#

时间:2016-07-13 14:34:34

标签: c#

我目前有一个文本文件需要清理并正确格式化。我正在使用c#read进入当前从文件中读取所有内容的文本文件。但是我只想阅读该文件中的某些内容。

例如文件将包含下面显示的值列表。

约翰,123,ABC,DDD,EEE,伦敦 11,22,333,444,55,SS,DD,RR, 每周一次,呃,12。

我只想读取 abc 444 之间的值,其余的我不希望程序读取。

我的计划到目前为止

    var text = System.IO.File.ReadAllText(@"C:\Folder\filename.txt");
    Console.WriteLine("file contents = {0}", text);
    Console.ReadKey();

我是否需要遍历整个文件并显示我想要的值,这是一个简单的例子

感谢

1 个答案:

答案 0 :(得分:1)

您正在使用 CSV 文件。如果简单 CSV(它的值中没有逗号和引号),您可以使用 Linq

  var cleared = File
    .ReadLines(@"C:\Folder\filename.txt")
    .Select(line => line.Split(','))
    .Select(items => items.Skip(2).Take(8))
    .Select(items => items.Join(","));

  File.WriteAllLines(@"C:\MyData.csv", cleared); 

  // If you want to print out values to console instead of saving them to file: 
  // foreach(var line in cleared) 
  //   Console.WriteLine(line);