Как прочитать файл из текстового файла с разделителями и записать его обратно в новый текстовый файл - PullRequest
0 голосов
/ 24 мая 2019

мне дали данные из txt файла, например

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

проблема в том, что я новичок в этом типе файлов, и я не знаю, как его читать и экспортировать в новый текстовый файл с отдельным Trans ID

Таким образом, в этих данных будет 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 текстовых файла, поскольку они содержат разные идентификаторы транзакций. Каждый отдельный идентификатор транзакции создаст новый текстовый файл и поместит в него транзакцию (включая заголовок).

Thankyou

1 Ответ

2 голосов
/ 24 мая 2019
// 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, так как это может легко сломать

...