C# - Tab с разделителями не работает, если столбец содержит пустые символы / пробелы
У меня есть следующий текст в файле.txt:
hello 123 example info
mello 456 xample text
yello maple syrup
Я делаю:
string FILENAME = Server.MapPath(".") + @"\example.txt";
string[] allLines = File.ReadAllLines(FILENAME);
string[] items = allLines[i].Split('\t');
Теперь, для последней строки, я получаю два последовательных пустых столбца вместо того, чтобы просто пропустить второй (items[1]) и дать мне третий.
Мой конечный результат выглядит так:
hello 123 example info
mello 456 xample text
yello
Я на самом деле вставляю информацию в базу данных, но я не хочу вдаваться в подробности, потому что я знаю, что проблема в самом расколе.
Мой окончательный результат должен включать информацию о третьем столбце в третьей строке.
1 ответ
Вы разделяете строку на '\t', что является правильным, если пустое пространство использует вкладки, чтобы туда попасть. Если бы они правильно использовали вкладки, вы должны были получить именно то, что хотели. Если бы вместо этого они использовали пробелы, вы бы получили весь текст в первом столбце, очень длинный. То, что вы получили вместо этого, ничего. Наиболее вероятное решение состоит в том, что на самом деле были дополнительные вкладки, что выходной массив был длиннее, чем ожидалось, а третий столбец теперь находится, например, в слоте items[3] вместо items[2]. Трудно сказать вам, как вы можете контролировать это, за исключением того, что вместо проверки элементов [2] вы можете проверить на элементы [items.length-1].