2010-02-17 1 views
1

Я планирую изменить формат файла, чтобы каждое поле должно быть заключено в двойные кавычки обязательным "A","Field1","Field2","Field3","Fi"el,d","Fi""eld", я хочу, чтобы разделитель был объединен, т.е. был «, (двойные кавычки с последующим запятой), как изменить команду ниже раздвоение включить два сепаратора «(двойные кавычки и запятые) вместе line.split(",(?=([^\"]*\"[^\"]*\")*[^\"]*$)",15);Что касается формата файла CSV SPLIT

+2

На каком языке это? Обновление: глядя на другие вопросы, которые задал плакат, я бы предположил, что это Java. –

+1

Dupes от того же пользователя: http://stackoverflow.com/questions/2277476/regarding-java-split-command-csv-file-parsing и http://stackoverflow.com/questions/2241915/regarding-java-string- манипуляция/2241950 # 2241950 Пожалуйста, придерживайтесь ** одной ** учетной записи пользователя alltime и ** одного ** темы для вопроса/проблемы. – BalusC

+0

Большое спасибо за вашу информацию. Я дал свой ответ, но ответа не получил. Поэтому я создал эту тему. Я создаю вопросы под одной учетной записью пользователя, не уверен, как это может быть несколько учетных записей. – Arav

ответ

2

как я изменить команду ниже раздвоение включить два сепаратора», (двойные кавычки и запятые)

Это сделало бы это:

line.split("\","); 

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

Однако вместо того, чтобы изобретать колесо, я предлагаю вам попробовать найти существующий CSV-ридер для вашей платформы. Это будет лучше, быстрее и намного меньше работать.

+0

Большое спасибо. Я попробую это. Comma создавала проблемы, когда в данных используются двойные кавычки. поэтому я хочу использовать два разделителя вместе. Вы ответили: «Вам нужно будет обрезать дополнительные кавычки, которые не удаляются разделом». Я этого не понимаю. Вы указываете последнее поле в строке? – Arav

+0

Я просто написал ответ, предлагающий несколько библиотек CSV, а затем заметил, что Марк уже предложил использовать существующую библиотеку CSV. SuperCSV выглядит довольно хорошо с первого взгляда, но есть как минимум 4 человека, которые также должны выполнять эту работу. – rob

1

В нашем приложении мы также поддерживали файлы, разделенные запятыми, в течение многих лет. Все прошло хорошо, пока клиенты не начали добавлять двойные кавычки в строки. Мы решили эту проблему, также позволяя вставлять значения в одинарные кавычки (и не допускать одинарных кавычек между двойными кавычками или двойными кавычками между одинарными кавычками), но затем клиенты хотели добавить как одиночные, так и двойные кавычки в строки, или cann 'Сгенерировать этот файл проще, потому что охватывающие символы зависят от значений.

Затем мы начали поддерживать обратную косую черту, но ситуация только ухудшалась.

Мы, наконец, решили проблему, используя TAB в качестве разделителя (вместо запятой). TAB никогда не отображается в строковых значениях. Больше никаких цитат. Задача решена.

+0

Большое спасибо. Уже разработали некоторые из этих систем. поэтому теперь я не могу изменить разделитель. – Arav

Смежные вопросы