C# текстовый файл в массив строк и как удалить указанные c строки? - PullRequest
0 голосов
/ 30 марта 2020

Мне нужно прочитать текстовый файл (10 МБ) и преобразовать в .csv. См. Ниже часть кода:

string DirPathForm = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location);'
string[] lines = File.ReadAllLines(DirPathForm + @"\file.txt");

У некоторой части текстового файла есть образец. Итак, используется как показано ниже:

string[] lines1 = lines.Select(x => x.Replace("abc[", "ab,")).ToArray();
Array.Clear(lines, 0, lines.Length);
lines = lines1.Select(x => x.Replace("] CDE  ", ",")).ToArray();

У некоторой части нет шаблона для непосредственного использования Заменить. Вопрос в том, как удалить символы, цифры и пробелы в этой части. Пожалуйста, посмотрите ниже?

string[] lines = {
    "a]  773  b",
    "e] 1597  t",
    "z]    0  c"
};

, чтобы получить результат ниже:

string[] result = {
    "a,b",
    "e,t",
    "z,c"
};

obs: удаленные элементы должны быть заменены на ",".

1 Ответ

0 голосов
/ 30 марта 2020

Прежде всего, вы не должны использовать ReadAllLines, так как это огромная файловая операция. Это загрузит все данные в оперативную память, и это не правильно. Вместо этого читайте строки одну за другой в al oop.

Во-вторых, вы, безусловно, можете использовать регулярные выражения для замены данных из первого условия во второе.

...