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].

Другие вопросы по тегам