Если вы ожидаете, что люди будут отправлять вам файлы, вам следует потребовать их использования в формате , который вы решили, и предупредить их, что любой другой формат будет проигнорирован. И убедитесь, что вы правильно обрабатываете недопустимые форматы, изящно сообщая об ошибке, а не сбой ...
Я предлагаю вам перенаправить пользователей на соответствующий RFC 4180 , если они хотят полностью соответствовать стандарту CSV .
Если вам нравится, вы можете добавить для них опцию, чтобы ввести разделитель, который они использовали при загрузке файла (и убедитесь, что вы обрабатываете случаи, когда они неправильно набрали его или умышленно указали неправильный).
Если вам еще приятнее, вы можете прочитать первую строку и попробовать разные часто используемые разделители (<space>
, \t
, ,
, ;
, ...) и выбрать тот, который дает вам наибольшее количество токенов.
Всякий раз, когда вы имеете дело с пользовательским вводом, вам придется приложить много усилий (и код) для проверки каждого углового случая.