|
Обработка файла CSV - разделители в значениях ячеек | ☑ | ||
---|---|---|---|---|
0
ac13
20.04.21
✎
14:45
|
Есть файл CSV с разделителем ячеек "точка с запятой" - ;
При этом значения ячеек тоже могут содержать этот символ. При чтении файла в 1С и разбиении строки на колонки - те строки, где есть ; в значениях ячеек - разбиваются неправильно. В таких случаях есть варианты считать файл "правильно"? |
|||
1
Garykom
гуру
20.04.21
✎
14:46
|
(0) ""
|
|||
2
Garykom
гуру
20.04.21
✎
14:47
|
"Значения, содержащие зарезервированные символы (двойная кавычка, запятая, точка с запятой, новая строка) обрамляются двойными кавычками ("). Если в значении встречаются кавычки — они представляются в файле в виде двух кавычек подряд."
|
|||
3
Dark_Warrior
20.04.21
✎
14:48
|
Механизм самодельный? Может экранировать, по типу json?
|
|||
4
Garykom
гуру
20.04.21
✎
14:48
|
Правильный разбор CSV это не тупое СтрРазделить а конечный автомат
|
|||
5
ac13
20.04.21
✎
14:51
|
(2) то есть, когда при чтении файла, если значения ячеек содержат точку с запятой, они там будут как ";"?
|
|||
6
Garykom
гуру
20.04.21
✎
14:54
|
(5) нет
"Если значение файла содержит ; или "", оно там будет вот так",343,оварвоаров, А тут не содержит служебных, лорол,454 |
|||
7
Garykom
гуру
20.04.21
✎
14:56
|
(6)+ По дефолту для упрощения все строковые значения берут в "" а числовые нет
|
|||
8
Garykom
гуру
20.04.21
✎
14:57
|
(7)+ Разбор CSV представляет себе конечный автомат, разбирающий каждую строку по символам по одному
Имеющий несколько состояний после чтения очередного символа и разносящий символы по значениям, с правильными заменами "" на " |
|||
9
Garykom
гуру
20.04.21
✎
15:00
|
Для скорости можно разделить всю строку на подстроки по ;
А затем проанализировать разбитые на содержание внутри и чем начинается/заканчивается И правильно сложить строки излишне разбитые и выполнить замены символов |
|||
10
ac13
20.04.21
✎
15:02
|
понял, спасибо! помогли)
|
|||
11
Garykom
гуру
20.04.21
✎
15:11
|
(10) Напишешь выложи правильный разбор CVS на ИС или гитхаб
Вроде как еще нету |
|||
12
Garykom
гуру
20.04.21
✎
15:11
|
(11) *CSV
|
|||
13
Garykom
гуру
20.04.21
✎
15:12
|
(11)+ причем с возможностью указать разделитель (, или ; или еще что) и ограничитель (" обычно но может и другой быть)
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |