parser

Написать ответ на текущее сообщение

 

 
   команды управления поиском

Не нашёл в хелпе фишку с обработкой "логического И" в условиях (ну или почти не нашёл) ...

Sergei 15.10.2002 19:00

Вот 3 варианта супер-простого кода на Парсере:

вариант №1 - не работает, т.к. переменная $str не определена (пустое значение)
@main[]
$str[]
^if(^str.pos[ABC]>0){
YES	
}{
NO	
}
вариант №2 - тоже не работает, т.к. ... причина "неисправности" понятна только тем, кто в детстве читал буквари по С++ и всем остальным искушённым программерам :)
@main[]
$str[]
^if(^str.pos[ABC]>0 && def $str){
YES	
}{
NO	
}
А вот вариант №3 - уже работает ("от перестановки мест слагаемых" оказывается результат меняется)!
@main[]
$str[]
^if(def $str && ^str.pos[ABC]>0){
YES	
}{
NO	
}
Если честно, я сам вчера на эти грабли наступил (целый час на это убил) - и в SQL ошибки искал, и что только не делал. Оказалось, что из формы одно поле приходило пустым, а я в нём скал символ "@" и проверял на пустоту 2-м способом. И промучался бы до сих пор, если бы не вспомнил старый добрый C++!!!
(А в хелпе к парсеру этой фичи нет - по крайней мере я не нашёл)
Хотя нет - про приоритеты кое-что написано, но для простых смертных в хелп стоило бы добавть примеры иллюстирующе эти вещи.
Как считаете - стоит прописать этот фокус в хелп или пусть все "не искушённые" лбы бьют в кровь и форум терзают :)???