ranio Ответов: 3

Как удалить пробелы при чтении из текстового файла в C#?


Я читаю текстовый файл, который содержит значения, разделенные запятыми.
Содержимое файла будет выглядеть следующим образом:
ad,af,,, EndofReport
Я хочу читать только данные с содержимым, разделенным запятыми.
т.е.:
ad,af,EndofReport без пустых значений в строке, разделенной запятыми.

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

Основной код, как показано ниже:
string[] lines = System.IO.File.ReadAllLines(filePath);
                                    for (int j = 0; j < lines.Length; j++)
                                    {
                                      
                                        StdReportData = lines[j];
string[] words;
 words = StdReportData.Split(',');

}

3 Ответов

Рейтинг:
1

TommoDotCommo

Вы можете измениться

words = StdReportData.Split(',');

к
words = StdReportData.Split(',',StringSplitOptions.RemoveEmptyEntries);


Дальнейшее чтение: Строка.Метод Разделения (Char[], StringSplitOptions) (System)[^]


Рейтинг:
1

Rajneesh Kumar Verma

Попробуйте, как показано ниже:

string[] lines = System.IO.File.ReadAllLines(filePath);
            for (int j = 0; j < lines.Length; j++)
            {

                var StdReportData = lines[j];
                string[] words;
                words = StdReportData.Split(',')
                    .Select(x => x.Trim())
                    .Where(x => !string.IsNullOrWhiteSpace(x))
                    .ToArray();

            }


Рейтинг:
0

OriginalGriff

Лучшее решение - "не надо" - CSV-данные не просто "разделены запятой", они также могут содержать строки в кавычках, которые вполне законно могут содержать запятые.

Вместо того чтобы "прокатывать свое собственное" решение здесь, взгляните на это: Быстрый читатель CSV[^] - он делает всю тяжелую работу за вас!


TommoDotCommo

Или https://joshclose.github.io/CsvHelper/ для получения более актуальной информации.