maneeshsingh07 Ответов: 3

Чтение слов в текстовом файле из строки, разделенной запятыми в до-диез


Привет
Я хочу читать слова в текстовом файле строки, разделенные запятыми в c#, но у меня есть проблема с одним столбцом-это адрес и есть запятая метод split также удаляет запятую из поля адреса.Например, имея имя столбца дерева Dept Address с abc, hgd,12K, Ram Nagar; я не хочу удалять запятую из поля адреса.

Пожалуйста, помогите мне.

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

string[] lines = файл.ReadAllLines (имя файла );
( строки по каждому элементу в линии )
{
string[] col = строка.Split( new char[] {','} );

}

Maciej Los

Запятая, где? Вы используете точку с запятой для разделения данных, а не запятую!

maneeshsingh07

Моя вина, теперь я обновил, пожалуйста, помогите сейчас.

[no name]

Некоторые вспомогательные материалы в порядке: Значения, разделенные запятыми - Википедия[^]

3 Ответов

Рейтинг:
2

Maciej Los

Ну, из - за кода, который вы опубликовали, я не верю, что этот адрес разделен на части, потому что вы используете [;] (точка с запятой) как делитель.

string[] lines = File.ReadAllLines( filename );
foreach ( string line in lines )
{
 string[] col = line.Split( new char[] {';'} );
} 

[ОП изменил вопрос ]

Пожалуйста, прочтите мое письмо. прошлый ответ[^] чтобы узнать, что вам нужно ADO.NET (OleDb), чтобы решить вашу проблему.


Рейтинг:
1

#realJSOP

0) Если адресное поле не имеет кавычек вокруг него, вы действительно не можете ожидать, что сможете точно разобрать строку.

1) Если вы анализируете CSV-файл, полученный из Excel, есть несколько доступных парсеров CSV-файлов, включая этот, прямо здесь, на CodeProject: Парсер CSV файлов[^]


maneeshsingh07

Сэр, если кавычки вокруг этого поля тогда..

Jon McKee

Разбор на ". Если предположить, что адрес не является первым полем и является единственным полем, содержащим ваш разделитель, то это будет 2-й токен. Затем разберите токены 1 и 3 по мере необходимости. Можно также использовать группы балансировки регулярных выражений, но это головная боль, если вы не абсолютно уверены в формате, которого, похоже, у вас нет.

Другой вариант - просто использовать разделитель, который не является символом, появляющимся в ваших данных, как это предлагается ниже.

#realJSOP

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

Рейтинг:
1

Hin Wai

используйте другой разделитель вместо ","


Maciej Los

OP использует'; ' (точка с запятой).