helb
|
Posted: Wed Mar 20, 2024 17:37 Post subject: |
|
|
little-brother
С таким алгоритмом много неправильных определений будет. Вероятность запятых и двоеточий высока, и очень часто их там будет больше чем разделителей.
Я думаю, лучше ранжировать: \t | ; , :
У вас при детекте одинаковое количество разделителей в строках учитывается? Тех же запятых и точек с запятой в данных часто будет разное количество (в именах файлов, например).
Вообще, таб все же исключительный случай: скорее всего вы в дикой природе вообще не найдете ни один CSV-файл где были бы табы, и они при этом не были бы разделителями. Я потому его исключительно использую: никаких гаданий + ничего «закавычивать» или эскейпить не надо, еще и с текстовыми редакторами поддерживающими эластичные табы всё наглядно.
Далее, как и подозревал, опции комментариев не работают для первой строки, когда там BOM.
Помимо этого, вариант «не парсить» по-логике должен и на определение названий колонок распространяться.
Плюс названия второго и третьего малость неинтуитивны: по смыслу оба — это «игнорировать», с разницей лишь в том показывать как есть или скрывать.
Destiny
У CSV нет никаких стандартов, жалкое упоминание пунктиком в каком-то RFC, который вообще все игнорируют — это не стандарт :)
Вопрос в том, что при любом парсинге структуры комментарии должны игнорироваться везде — не важно где они расположены и сколько их. |
|