@UserTrue он из браузера их не всегда берет. А потом если сервер ответ по set-cookies шлет он их ставит сам убирать их.
аа не знал что он не записывает, я через прокси сервер все делаю он точнее показывает что там шлет. Но все равно то что он не умеет br сильно подмораживает на ноду got перешел
Как спарсить такую csv строку?
-
Есть у меня такая csv строка.
YES,492.79,"Samsung Galaxy: S5, 16GB, White (Verizon Wireless)",3677,4.4 out of 5 stars,BKNB9Jhg,1Разделитель запятая. Паршу строку стандартным способом BAS, он правильно парсит, не учитывает те запятые что в кавичках. Но вот двоеточие учитывает, и делит также по двоеточию. Так не подходит. Нужно чтоб данные спарсились в переменные в таком виде:
Переменная 1 = YES Переменная 2 = 492.79 Переменная 3 = "Samsung Galaxy: S5, 16GB, White (Verizon Wireless)" Переменная 4 = 3677 Переменная 5 = 4.4 out of 5 stars Переменная 6 = BKNB9Jhg Переменная 7 = 1Пробовал парсить через список, но список учитывает все запятые, даже те что в кавычках.
Подскажите, как можно спарсить данную строку в переменные как в примере выше? -
@Gang said in Как спарсить такую csv строку?:
YES,492.79,"Samsung Galaxy: S5, 16GB, White (Verizon Wireless)",3677,4.4 out of 5 stars,BKNB9Jhg,1
но парсить строку из инструментов обрабатывает это верно.
может быть гдето вместо двойной кавычки апострофы два?

-
@ruzne Да, действительно, эту строку парсит правильно. Это я перестарался и для примера сделал нормальную строку. Вот взял рабочую строку которая так не парсится
YES,364.99,GoPro HERO3: Black Edition,934,4.2 out of 5 stars,HJIHJKLJJHH,.16,CHDHX-301,"October 22, 2012"У меня разбивает GoPro HERO3 в одну переменную, а Black Edition в другую.
@Fox Тоже о таком думал, но там настолько данные разнообразны в этой табличке, вдруг какой еще символ появится проблемный. А мне нужно стопроцентный вариант без лишних танцев с бубном)
@DrPrime к сожалению заказчик не может поменять структуру csv У него только с запятой выгружает его система
-
@Gang "вдруг какой еще символ появится проблемный."
думаю, что набор "проблемных" символов на разбивку ограничен примерно такими " , : ; " следовательно в вашем случае достаточно действительно заменить двоеточие и точку с запятой, а потом сделать map() реверс, но не одним символом, как посоветовали выше (всегда есть риск напороться на наличие такой подстроки/символа в данных), а каким-то своим набором типа <<TCHKZPT>> <<DVTCHK>> либо обозначениями переменных соответствующего значения [[TCHKZPT]] [[DVTCHK]] (что может оказаться еще интереснее)
-
((\".+\"){1,1}&|[^,]+)это должно работать, проверять я это конечно не буду,
что странно вместо & желал поставить ? как признак не жадности, но все ошибки к лучшемуайч, и за чем я проверял
/(\".+\")|([^,]+),|([^,]+?)/gUя думаю
или
/(\".+\")|([^,]+?)/gU -
Спасибо всем за костыли) Буду пробовать. Но конечно, хотелось бы видеть в BAS работу с csv файлами с коробки, без лишних запар. Я не говорю уже про полноценный exel. Вот в Зенке, поставил свой разделитель в настройках, и при любых раскладах распарсит csv правильно.
