如何使用分隔符从txt文件读取文件,并将其写回到新的txt文件

时间:2019-05-24 03:40:56

标签: c# flat-file

例如,我已经从txt文件获得了数据

Trans ID;Transaction Date;Cashier Name
00001;1 January;Ricky
00001;1 January;Ricky
00002;2 January;Rico

问题对于这种文件是新奇的,并且不知道如何读取并导出到具有单独Trans ID的新txt文件中

因此,在此数据中,将有2个文件,第一个文件用于00001 Trans ID的列表,第二个文件用于00002文件的列表(或更多个trans ID)

我试图读取文件

string filename = ("C:\\Users\\Documents\\My Received Files\\txn_success_daily.txt");
            string[] lines = File.ReadAllLines(filename);

            foreach (string line in lines)
            {
                string[] col = line.Split(new char[] { ';' });
            }

但是我不知道它是如何工作的,因为它不同于excel(基本上我创建应用程序来生成excel文件)

我需要将此数据分成2个txt文件,因为它包含不同的交易ID。每个不同的交易ID都会创建一个新的txt文件,并将交易放入其中(包括标题)。

谢谢

1 个答案:

答案 0 :(得分:2)

// read lines
var lines = File.ReadAllLines(@"D:\Tran.txt");

// group by first value
var groups = lines.Skip(1)
                  .Select(x => x.Split(';'))
                  .GroupBy(x => x[0]);

// iterate groups write the joined lines back to a new file with the key name
foreach (var group in groups)
   File.WriteAllLines($@"D:\Tran{group.Key}.txt", group.Select(x => string.Join(";", x)));

加胡椒粉和盐调味。

请注意,最好使用专用的CSV解析器,因为这样很容易破坏