[SOLVED] строковые if

IgorSush

Client
Регистрация
11.02.2016
Сообщения
312
Благодарностей
108
Баллы
43
Не знаю, может это и фича, но думаю, что так быть не должно.

Стандартный кубик If

Код:
'{-Variable.gate-}'!='acid'
должен выдавать True во всех случаях, кроме случая, когда переменная gate равняется 'acid', это логично.
В принципе так и происходит, но стоит в переменную попасть кавычке (') и все, этот кубик все время выдает False
То есть в переменной будет текст Mary'anna, а кубик все равно будет выдавать ('Mary'anna' != 'acid') = False, хотя очевидно, что ('Mary'anna' != 'acid') = True
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 241
Благодарностей
6 561
Баллы
113
по идее идет нарушение синтаксиса, и поэтому выдает ошибку.

попробуй:
1. и на мой взгляд самое нормальное решение... переменную проверять на нахождение в ней кавычки ' то есть после взятия переменно, делай простую замену ВСЕХ кавычек на пустоту, вот и все.
2. или попробуй кавычки заменить на двойные кавычки. Пример: "{-Variable.gate-}"!="acid"
 

Dimionix

Moderator
Регистрация
09.04.2011
Сообщения
3 068
Благодарностей
3 134
Баллы
113
3. C#
C#:
string gate = project.Variables["gate"].Value;
if (gate == "acid") return null;
 
  • Спасибо
Реакции: Dmffmd

IgorSush

Client
Регистрация
11.02.2016
Сообщения
312
Благодарностей
108
Баллы
43
по идее идет нарушение синтаксиса, и поэтому выдает ошибку.

попробуй:
1. и на мой взгляд самое нормальное решение... переменную проверять на нахождение в ней кавычки ' то есть после взятия переменно, делай простую замену ВСЕХ кавычек на пустоту, вот и все.
2. или попробуй кавычки заменить на двойные кавычки. Пример: "{-Variable.gate-}"!="acid"
1. Понятно, что дело в кавычке. Я это к тому, что кубики на то и кубики, чтобы простой юзер не заморачивался с проверками, экранированием а тупо мог сравнивать строки, не важно что в них. Т.е. проверки и т.д. должны быть включены.
2. В переменной могут быть и одинарные и двойные кавычки)

3. C#
C#:
string gate = project.Variables["gate"].Value;
if (gate == "acid") return null;
Спасибо, у меня проблемы нет, я примерно так и обхожу. А ведь обычный юзер может и не знать про С, что переменные нужно экранировать и как это делать.
Не встречал нигде, чтобы говорилось, что кавычки в переменных могут привести к неработоспособности стандартных кубиков.
Мое предложение - экранировать переменные на лету, средствами ЗП, чтобы их содержимое не могло влиять на синтаксис.
 

arhip1985

Client
Регистрация
31.10.2011
Сообщения
3 009
Благодарностей
791
Баллы
113
оказывается для этого есть кубик жс - подготовка переменной вроде бы
 

Sergodjan

Administrator
Команда форума
Регистрация
05.09.2012
Сообщения
21 588
Благодарностей
9 607
Баллы
113
оказывается для этого есть кубик жс - подготовка переменной вроде бы
ага, механику действия можно подсмотреть если создать проверку текста на странице через прав. кн. мыши..
действие называется Обработка текста - Подготовка JavaScript..
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 241
Благодарностей
6 561
Баллы
113
Я это к тому, что кубики на то и кубики, чтобы простой юзер не заморачивался с проверками, экранированием а тупо мог сравнивать строки, не важно что в них
ну а может другому юзеру тупо нужно сравнивать именно так как сравнивается в данном случае, тогда что?
любой язык программирования в первую очередь построение логики, а уж потом все остальное.
можно тогда сразу требовать, чтобы тупо был один кубик, который деньги приносит.
 

IgorSush

Client
Регистрация
11.02.2016
Сообщения
312
Благодарностей
108
Баллы
43
ну а может другому юзеру тупо нужно сравнивать именно так как сравнивается в данном случае, тогда что?
Когда такое может понадобиться? Пример в студию!)

любой язык программирования в первую очередь построение логики, а уж потом все остальное.
можно тогда сразу требовать, чтобы тупо был один кубик, который деньги приносит.
Кубики это не язык программирования а WYSIWYG, на и делается упор ZP
Насчет кубика "бабло" - поддерживаю!

Если серьезно, то, возможно где-то написано, что переменные надо "готовить" для использования в кубиках. Может пропустил. Хотя подсмотреть в экшне поиска текста тоже можно, но ИМХО это бубен.
А вообще мне пофих, я за нубов пекусь)
 

backoff

Client
Регистрация
20.04.2015
Сообщения
6 241
Благодарностей
6 561
Баллы
113
Когда такое может понадобиться? Пример в студию!)
не, ну лол.
в принципе любой сложный парсинг, вот те пример )))
А вообще мне пофих, я за нубов пекусь)
нах?

учитывая что ты уже давно знаешь решение вопроса, и вообще на хер эту тему создал :-)
 

IgorSush

Client
Регистрация
11.02.2016
Сообщения
312
Благодарностей
108
Баллы
43

backoff

Client
Регистрация
20.04.2015
Сообщения
6 241
Благодарностей
6 561
Баллы
113

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