Относительно формата файла CSV SPLIT - PullRequest
1 голос
/ 18 февраля 2010

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

Ответы [ 2 ]

2 голосов
/ 18 февраля 2010

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

Это будет сделано:

line.split("\",");

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

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

1 голос
/ 18 февраля 2010

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...