If работает не правильно, в чём проблема?

  • Автор темы Автор темы spy107
  • Дата начала Дата начала

spy107

Client
Регистрация
19.08.2012
Сообщения
196
Реакции
15
Баллы
18
Здравствуйте. Сравниваю две переменных, в отладке четко вижу, что переменные равны, но If отправляет меня по пути false, хотя точно видно, что результаты переменных точь в точь одинаковые. В чём может быть подвох?
Переменные указываю '{-Variable.1-}'=='{-Variable.2-}'
вроде всё должно работать, но почему-то по false идёт и всё тут.
Версия программы 5.7.5.0 и я подозреваю что обновление до версии 5753 вряд ли поможет.
 
Прикладывайте семпл проекта, где-то ошибка)
 
Спасибо, в общем сам разобрался. Похоже проблема была в том, что я объединял элементы списка, запихивал их в переменную, потом из этой переменной выделял через regx то что мне нужно было и сравнивал это с другой переменной. Видимо так нельзя. Обошёл объединение элементов и оно заработало. Не совсем удобно, но работает.
 
Не должно это влиять.
 
видимо лишний символ при регексе возникал..
 
видимо лишний символ при регексе возникал..
Да вот в том то и дело, что вроде проверял, ни пробелов, ничего не было, разве что перенос строки мог быть, но опять же при отладке я смотрел переменные и там не было возможности прокрутить поле на следующую строку. Как будто символ был, но он какой-то невидимый и никак не находимый с внешней стороны.
 
Прикладывайте пример если есть.
В любом ином случае я думаю что ошибка у вас где то)
 
Я бы эти значения ещё в шестнадцатеричных кодах сравнил... у меня бывало, что похожие визуально символы на самом деле разные. Например, слабо отличить русскую «с» от латинской «c» на глаз?
 
У меня когда-то был такой галюн с PM помогло перезапуск программы. А вообще попробуй другие значения прописать в ручную в эти переменные и сравнить, если поможет значит проблема в том что лежит в этих переменных
 
Я бы эти значения ещё в шестнадцатеричных кодах сравнил... у меня бывало, что похожие визуально символы на самом деле разные. Например, слабо отличить русскую «с» от латинской «c» на глаз?
Ну тут теперь еще и фишка в том, что я получается беру значение с сайта, потом чтобы получить порядковый номер этого значения ищу его в списке увеличивая при этом счетчик. Так вот, когда приходит время для сравнения значения которое я взял с сайта и значения которое я опять же взял с сайта, они оказываются не равны. Как такое может быть вообще?
Сравниваю значения вот таким образом: (?i).*{-Variable.1-}.*
т.е. получается через regx. Потом иду и проверяю пустая ли переменная, в которую я кладу значение после выполнения regx. Так вот она пустой оказывается всегда почему-то. Хотя в конструкторе регулярок всё срабатывает без проблем.
 
Да как удобно. Можно и к форуму приаттачить
 
В общем пробовал, пробовал и ничего не получается. Прикрепляю архив.

P.S. в общем всё понял, спасибо всем за помощь.
 
Последнее редактирование:
В общем проблема в том, что последнее выражение if никогда не выходит на true.
 
У тебя в логике написано вот так '{-Variable.polz_rubrica1-}' == '' попробуй вот так '{-Variable.polz_rubrica1-}'=='' то есть убери пробелы (может в этом проблема)
 
У тебя в логике написано вот так '{-Variable.polz_rubrica1-}' == '' попробуй вот так '{-Variable.polz_rubrica1-}'=='' то есть убери пробелы (может в этом проблема)
Попробовал, нет, дело не в этом.
 
В общем проблема в том, что последнее выражение if никогда не выходит на true.

Потому что у тебя в последнем выражении переменная {-Variable.polz_rubrica1-} содержит значение с переносом в конце, в таблице переменных это выглядит так -"Рекламные услуги▢"

И еще я не понял глубиннго смысла этого проекта с счетчиками. Ты хочешь по значению переменной найти значение value чтобы его установить для элемента? Почему не используешь гораздо более простой selecteditems? (set --> selecteditems -->Рекламные услуги, после еще можно для этого элемента применить rise-->Exchange, чтобы значение точно поменялось)
 
так у тебя смортри что в переменную попадает
 

Вложения

  • 2015-03-14_031656.png
    2015-03-14_031656.png
    26,6 KB · Просмотры: 21
с первого if cразу ошибка, predl_spros а у тебя обозначена что ты в такую хочешь положить переменую predi_spros , предлож или спрос так не прокатит , предлож||спрос , ну а почему так парсит коряво я незнаю, во какая фига ещё, выпало для сравнения железнодорожный транспорт но if проигнорил это сравнение и ушёл по false, вписал свои значения по true пошёл
 

Вложения

  • 2015-03-14_035939.png
    2015-03-14_035939.png
    13,5 KB · Просмотры: 7
Последнее редактирование:
попробуйте перед сравнением сделать экшн проверка текста ява скриптом,а потом уже этот текст в переменной после проверки сравнивать,часто попадаются невидимые символы,как писал maxxZEN и это не только пробелы,переносы строк и тд.
 
Проблема ясна, всем спасибо за помощь и разносторонние варианты решения проблемы. Даже не ожидал что столько вариантов будет.
 

Кто просматривает тему: (Всего: 0, Пользователи: 0, Гости: 0)