Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Обработка файла CSV - разделители в значениях ячеек

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.