Member 12664741 Ответов: 1

C# разбить текстовый файл на 3 столбца


У меня есть список, загружающий текстовый файл с чем-то около 100 элементов, отсортированных от А до Я, и я хотел бы разделить их на разные столбцы

Колонка 1 A-F
Колонка 2 J-R
Колонка 3 S-Z

Что я хотел бы знать, так это возможно ли это, и если да, то с чего бы мне начать, я не могу найти никакой информации об этом.

Что я уже пробовал:

Я не очень старался я понятия не имею с чего начать и возможно ли это вообще и все мои поиски оказываются пустыми из за того что это очень специфический и я предполагаю необычный вопрос?

Garth J Lancaster

Я думаю, вам нужно дать определение "элементов" и "что такое ключ" для " А " - " я "-например, являются ли элементы "объектом", где "ключ" определяется как, возможно, свойство, или же элементы просто строка и ключ " а " .. " Z "происходит из первой или" n-й " позиции в строке ?

(пожалуйста, используйте "улучшить вопрос", чтобы добавить эту информацию к вашему вопросу, а не отвечать на него-это означает, что другие, возможно, могут помочь)

Karthik_Mahalingam

приведите некоторые примеры данных текстового файла

1 Ответов

Рейтинг:
2

Garth J Lancaster

Я собираюсь дать вам мысль о том, как начать думать, даже если ваши требования (как я уже прокомментировал) не определены на 100% - делать это без лучших требований может быть неправильно, но может помочь вам увидеть лес для леса

допустим, у вас есть массив строк, который представляет собой все строки в вашем файле данных

string path = @"C:\some dir\somefile.txt";
string[] allFileLines = File.ReadLines(path)


- да ?

Итак, для столбца 1 вы хотите получить соответствующие "строки" из allFileLines, где какой-то "ключ" попадает в диапазон A-F .. Итак, на самом базовом уровне, используя LINQ,

var column1Lines = 
  from line in allFileLines
  where (some condition that matches 'line' to key 'A-F')
  select line;


и поэтому повторяется для столбца 2 J-R, столбца 3 S-Z. Теперь может быть много способов оптимизировать это, и, немного подумав, я мог бы вернуть словарь со строковым ключом 'column1'- & gt; список строк для column1, но, может быть, это просто не требуется/OTT

Этот бит (некоторое условие, которое соответствует 'line' клавише 'A-F') действительно становится решающим в соответствии с комментарием, который я опубликовал - это может быть совпадение регулярных выражений, отдельная функция, принимающая "A-F" в качестве входных данных и выполняющая ваше совпадение, или что-то еще ..

. но для того, чтобы мы могли дать вам решение, ему действительно нужно лучшее определение "спецификации" /требования с вашей стороны - как только вы это сделаете, вы можете использовать LINQ или использовать foreach на allFileLines с функцией "классификатор" и переключателем для добавления "классифицированной строки" в Список для столбцов 1, 2 или 3.