|
|
|
_ответ
Оп-па, и ты на это нарвался... Ну что ж, здравствуй, друг... ;-)
Проверяем первый вариант - смотрим, как Парсер цыферки сравнивает:^if[(1==1)&&(2==2);
Ok!<br>;
Ba-a-ad...
] Результат - OK - надо же!^if[(a==a)&&(b==b);
Ok!<br>;
Ba-a-ad...] Результат: [if: Bad variable or table item name near '==a)&&(b==b)']^if[('a'=='a')&&('b'=='b');
Ok!<br>;
Ba-a-ad...
]Результат: [if: Syntax error near ''a'=='a')&&('b'=='b')']
"А-а, - сказали мужики - логический оператор "==" умеет сравнивать только цифры! А операторов для сравнения строк, окромя ^eq[] - нету. Нет бы как в перле - ^if[('a' eq 'a')&&('b' eq 'b') - фиг вам!"
Когда тебе надо выполнять некую условную операцию, если соблюдены два условия, делай так, например:^eq[строка1;образец1;
^var[token1;1];^var[token1;0]]
^eq[строка2;образец2;
^var[token2;1];^var[token2;0]] а затем делаешь if по двум числовым переменным:^if[(^var[token1]==1)&&(^var[token2]==1);
Ok!<br>;
Ba-a-ad...
] Господа, вам не кажется, что мы гланды немножко не через то место удаляем? И что в табличку "Логически операции" на http://www.parser.ru/docs/general.html#1-7 так и просятся eq и ne?
|