В большинстве случаев CSV файлы представляют собой текстовые файлы с записями, разделенными запятыми. Однако иногда эти файлы будут разделены точкой с запятой. (Excel будет использовать разделители с запятой при сохранении CSV, если региональные настройки имеют десятичный разделитель, заданный как запятая - это распространено в Европе. Ссылка: http://en.wikipedia.org/wiki/Comma-separated_values#Application_support)
Мой вопрос в том, что лучший способ угадать, есть ли у него запятая или точка с запятой?
например. строка типа 1,1; 1,1 может быть неоднозначной. Его можно интерпретировать как запятую, как: 1 1; 1 (строка) 1
или точка с запятой 1,1 1,1
Мое лучшее догадка заключается в попытке разбора файла как с помощью, так и с; разделители, затем выберите синтаксический разбор, который имеет большинство строк той же длины, что и первая строка (обычно строка заголовка). Если оба имеют одинаковое количество строк, выберите тот, у которого больше столбцов. Основным недостатком этого является дополнительные накладные расходы.
Мысли?