parser

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

 

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

Во первых стоит подумать, нужно ли оно тут...

Misha v.3 29.04.2002 20:07

т.к. у p3 есть нормальные локальные переменные, и очень не рекомендуется переносить некоторые алгоритмы из p2 в p3 как есть (я уже запарился переделывать...).

Например, вместо
^tt.menu{
^if($tt.x = 1){что-то делаем}
}
существенно бустрее работает такое:

$tt1[^tt.select($tt.x == 1)]
^tt.menu{что-то делаем}

Во вторых, если уж загорелось, то делать подобные переменные можно так:

$objName[flag$id]
$$objName(1)

или попробовать прямо так:
${flag$id}(1)

Обратите внимание, что я написал круглые скобки, т.е. сказал, что тут будет число, а не строка.

В з3 значитально удобнее использовать числовые флаги

$is_empty(0)
^if(тра-ля-ла){$is_empty(1)}

^if($is_empty){ делаем что-то }

Далее... был ^number[]... теперь делаем так:

^form:formname.int(0) - т.е. берем элемент формы с именем formname и пытаемся преобразовать к числу, если не получается - суем 0 (можете не ноль, а какой-нить другой default)

Еще удобно для лукапов использовать хеш, а не делать ^locate[]

пример:
$h[^hash:sql{SELECT id, name FROM record}]

$id(10)
^if($h.[$id]){есть элемент с id = 10}{нету элемента}

в общем... читать... думать заново...