Нашел решение проблемы, суть была в том, что в двух функциях, совпадали метки, только сейчас понял, что метки имеют глобальное значение, а не локальное. Спасибо форуму!
не парсить запись из базы данных изза ":"
-
@Fox said in не парсить запись из базы данных изза ":":
@selector said in не парсить запись из базы данных изза ":":
Роботает. Тепер я понял что записи хешируюют не только изза безопасности. Но ето на крайний случай так как фильтр в базе по етому хешу не сделаеш.
Можно хранить в json формате любые данные. По нему уже можно создать фильтр
В Базе?
т.е. есть таблица 5 столбцов. И как это будет выглядеть? Интересно, но непонятно. -
@kuzkuz said in не парсить запись из базы данных изза ":":
@Fox said in не парсить запись из базы данных изза ":":
@selector said in не парсить запись из базы данных изза ":":
Роботает. Тепер я понял что записи хешируюют не только изза безопасности. Но ето на крайний случай так как фильтр в базе по етому хешу не сделаеш.
Можно хранить в json формате любые данные. По нему уже можно создать фильтр
В Базе?
т.е. есть таблица 5 столбцов. И как это будет выглядеть? Интересно, но непонятно.Скорее всего парсер сбивается из за кавычек в одном из столбцов, думаю проще будет заэкранировать кавычки. В CSV кавычки кстати экранируются так же кавычками
:D -
Я писал тут https://community.bablosoft.com/topic/12829/профи-кто-работает-с-бд-как-вы-избегаете-таких-ошибок/11 что у меня возникла аналогичная проблема.
Софт в базу пишет ip, так вот когда приходит кривой ip типа sdfh:dsgh:fgh:3467 то начинается потом попа с парсингом этой строки. Как вариант - перед добавлением в базу заменять все : на что то там..Но. Если вдруг забудешь и вручную добавишь в какое то поле строку с : то... -
@kuzkuz said in не парсить запись из базы данных изза ":":
Я писал тут https://community.bablosoft.com/topic/12829/профи-кто-работает-с-бд-как-вы-избегаете-таких-ошибок/11 что у меня возникла аналогичная проблема.
Софт в базу пишет ip, так вот когда приходит кривой ip типа sdfh:dsgh:fgh:3467 то начинается потом попа с парсингом этой строки. Как вариант - перед добавлением в базу заменять все : на что то там..Но. Если вдруг забудешь и вручную добавишь в какое то поле строку с : то...На сколько я помню двоеточие прекрасно экранируется кавычками, парсер же как то парсит правильно ссылки из базы.
-
@Fox said in не парсить запись из базы данных изза ":":
@kuzkuz said in не парсить запись из базы данных изза ":":
Я писал тут https://community.bablosoft.com/topic/12829/профи-кто-работает-с-бд-как-вы-избегаете-таких-ошибок/11 что у меня возникла аналогичная проблема.
Софт в базу пишет ip, так вот когда приходит кривой ip типа sdfh:dsgh:fgh:3467 то начинается потом попа с парсингом этой строки. Как вариант - перед добавлением в базу заменять все : на что то там..Но. Если вдруг забудешь и вручную добавишь в какое то поле строку с : то...На сколько я помню двоеточие прекрасно экранируется кавычками, парсер же как то парсит правильно ссылки из базы.
Верно.
Кавычками экранируется. Но только когда я строку распарсиваю на : то получается лажа. Простите за мой русский.
У меня ссылки не парсит, если пилить строку на :, а не на ", и понятно почему.
Странно что у вас парсит успешно -
@kuzkuz said in не парсить запись из базы данных изза ":":
@Fox said in не парсить запись из базы данных изза ":":
@kuzkuz said in не парсить запись из базы данных изза ":":
Я писал тут https://community.bablosoft.com/topic/12829/профи-кто-работает-с-бд-как-вы-избегаете-таких-ошибок/11 что у меня возникла аналогичная проблема.
Софт в базу пишет ip, так вот когда приходит кривой ip типа sdfh:dsgh:fgh:3467 то начинается потом попа с парсингом этой строки. Как вариант - перед добавлением в базу заменять все : на что то там..Но. Если вдруг забудешь и вручную добавишь в какое то поле строку с : то...На сколько я помню двоеточие прекрасно экранируется кавычками, парсер же как то парсит правильно ссылки из базы.
Верно.
Кавычками экранируется. Но только когда я строку распарсиваю на : то получается лажа. Простите за мой русский.Приведите пожалуйста пример данных, которые можно записать в базу в отдельные колонки и затем действие "парсить строку" их неправильно будет парсить. Так решение найдётся быстрее
-
@Fox said in не парсить запись из базы данных изза ":":
@kuzkuz said in не парсить запись из базы данных изза ":":
@Fox said in не парсить запись из базы данных изза ":":
@kuzkuz said in не парсить запись из базы данных изза ":":
Я писал тут https://community.bablosoft.com/topic/12829/профи-кто-работает-с-бд-как-вы-избегаете-таких-ошибок/11 что у меня возникла аналогичная проблема.
Софт в базу пишет ip, так вот когда приходит кривой ip типа sdfh:dsgh:fgh:3467 то начинается потом попа с парсингом этой строки. Как вариант - перед добавлением в базу заменять все : на что то там..Но. Если вдруг забудешь и вручную добавишь в какое то поле строку с : то...На сколько я помню двоеточие прекрасно экранируется кавычками, парсер же как то парсит правильно ссылки из базы.
Верно.
Кавычками экранируется. Но только когда я строку распарсиваю на : то получается лажа. Простите за мой русский.Приведите пожалуйста пример данных, которые можно записать в базу в отдельные колонки и затем действие "парсить строку" их неправильно будет парсить. Так решение найдётся быстрее
столб1 столб2 столб3 столб4 столб5
Иван Петрович 1989 site.ru Leningrad
Петр Сергеевич 1988 http://site.ru MoskvaВсё тут перестанет работать
Мы получаем город парся строку на : и получая значение 4 из списка
С Иван Петровичем Ок, в Петром Сергеевичем не проканает -
@kuzkuz said in не парсить запись из базы данных изза ":":
Петр Сергеевич 1988 http://site.ru Moskva
Всё тут перестанет работать
Мы получаем город парся строку на : и получая значение 4 из списка
С Иван Петровичем Ок, в Петром Сергеевичем не проканаетВсе тут нормально распарсит.
-
@UserTrue said in не парсить запись из базы данных изза ":":
@kuzkuz said in не парсить запись из базы данных изза ":":
Петр Сергеевич 1988 http://site.ru Moskva
Всё тут перестанет работать
Мы получаем город парся строку на : и получая значение 4 из списка
С Иван Петровичем Ок, в Петром Сергеевичем не проканаетВсе тут нормально распарсит.
ок
а тутстолб1 столб2 столб3 столб4 столб5 Иван Петрович 1989 site.ru Leningrad Петр Сергеевич 1988 88:23678:выароыв Moskva -
@kuzkuz said in не парсить запись из базы данных изза ":":
Петр Сергеевич 1988 88:23678:выароыв Moskva
И тут! Вы принципиально задаете вопросы, не проверив сами? Ну ок
-
@UserTrue said in не парсить запись из базы данных изза ":":
Петр Сергеевич 1988 88:23678:выароыв Moskva
Вы шутите? вот тестовый.
-
@UserTrue said in не парсить запись из базы данных изза ":":
@kuzkuz said in не парсить запись из базы данных изза ":":
Петр Сергеевич 1988 http://site.ru Moskva
Всё тут перестанет работать
Мы получаем город парся строку на : и получая значение 4 из списка
С Иван Петровичем Ок, в Петром Сергеевичем не проканаетВсе тут нормально распарсит.
НИЧЕГО И ТУТ НЕ РАСПАРСИТ НОРМАЛЬНО
555-тест-парсим-двоеточие.xml
ВАЖНО! согласно описанному выше условию --- в строку БАЗЫ вместо "site.ru" записалось что то с :, в данном случае "http://site.ru" -
И тут! Вы принципиально задаете вопросы, не проверив сами? Ну ок
Удивило что @Fox Вам плюсанул, хотя Вы не правы.
@Fox
Приведите пожалуйста пример данных, которые можно записать в базу в отдельные колонки и затем действие "парсить строку" их неправильно будет парсить. Так решение найдётся быстрееВыше два примера.
Все что можно делать это менять : на какие то знаки при добавлении в базу. Но глобально проблему не решает, так как : все равно может заползти -
@GhostZ я описал ту проблему которая возникла у ТС!
Если я его верно понял. просто у меня аналогичная проблема возникла в свое время.
Для себя я решение нашел. Но для новичков может быть неожиданным что они всегда получали строку с базы, парсили на : и брали нужное значение все было гут, а в какой то момент это схлопнулось.Ваш пример интересен, но пока не очень понятен. Спасибо
можете показать какая у вас строка с базы в переменной получается?
-
у меня строка с базы то такая
stolbez1:stolbez2:"stolbez3:stolbez4:stolbez5:"stolbez6:то такая
stolbez1:stolbez2:stolbez3:"stolbez4:slovo:slovo:stolbez5:"stolbez6:я может что то путаю, по памяти, но! " прыгают в зависимости от значений в столбцах
в итоге парсить ни через " ни через : не получается норм если не контроллировать записи. -
@kuzkuz, а чего не понятно то? Если ячейка в базе содержит CSV разделитель (":" или ";" или ","), то эта ячейка экранируется кавычками, действие "Парсить строку" из модуля "Инструменты" прекрасно парсит строки с таким экранированием.
-
@GhostZ а почему ни у ТС ни у меня так не получилось?
Может потому что когда я строки с базы получаю заранее скрипт не знает на что я буду парсить? Вам так не кажется? А мне кажется именно так.
Я получаю строки с базы применяя некоторые фильтры.
Строки уже далее не в курсе где какая ячейка была и в них ничего не заэкранировано -
просто @UserTrue несправедливо обвинил меня. Я показал 2 проекта что так не получается.
Считайте, что эти строки получены с базы.Ссылка не экранирована == она и не будет экранирована, ведь я просто получил строку с базы, через кубик "Получить записи по критерию"


