Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];




Вниз

Проверка выражения на true/false НУЖНА ПОМОЩЬ!!! 


Lotus   (2002-01-05 15:27) [0]

Подскажите плз. как проверить на истину логическое выражение в Ansi-строке. Например: есть Ansi-строка: " 2>1 AND 10>4", нужно
чтобы программа определила, что это выражение TRUE.



Андрей Сенченко   (2002-01-05 15:32) [1]

pos("",AnsiStroka), pos("<",AnsiStroka), pos("OR",AnsiStroka), ...
Короче сам для себя определяешь правила записи и возможные варианты этой самой AnsiStroka и сам для себя их потихонечку кропотлтво описываешь ...



Lotus   (2002-01-05 15:50) [2]

Нет POS не подходит, т.к. числовые выражения могут быть совершенно разной длинны напр. "1200<1" тут уже получится нужно определять что stroka.pos("<") это 5??
Я пишу программу, в которой пользователь сам строит логические условия (как в примере) и вводит их напр. в TEdit, а комп. их обрабатывает на истинность.



Lotus   (2002-01-05 15:59) [3]

Другими словами как мне перелопатить и потом подставить эту строку в условие типа:
if !stroka { ..... };
где stroka это то, что см. выше.



Андрей Сенченко   (2002-01-05 15:59) [4]

Наверное не совсем догоняешь мысли ... или я хреново толкую
Есть строка вида :
str := "12536.37>12536.38 AND 15=14"

1. Проверяешь нет ли пробела в начале
2. Вычленяешь первое условие ( т.е ищешь первый пробел )
Substr1 := copy(st,pos(" ",st),0)
3. Определяешь символ отношения
pos(">",st)
4. Отрезаешь строки ДО и ПОСЛЕ символа отношения, ковертишь в число и сравниваешь ...
и так далее.

....
Замотаешься конечно перебирать ВСЕ варианты, но можно облегчить себе жизнь предварительным проходом по стороке, убоем в ней всех пробелов, вычислением в ней всех логических и математических операторов и их позиций, а потом просто разобрать это по собственным правилам.



Андрей Сенченко   (2002-01-05 16:01) [5]

... а объяснить компилятору, что вот в этой переменной нужно будет когда-то потом найти логическое условие ... не знаю. Врядли.




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.24;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.017 c
7-75706           Ghost666              2001-10-10 23:03  2002.01.24  
Как поменять резкость(чувствительность) крысы в Win 9x


1-75604           ~Alice~               2002-01-07 20:38  2002.01.24  
еще раз про iniФайлы


4-75710           manumba               2001-09-24 21:50  2002.01.24  
SetWindowsHookEx (WH_Keyboard....) - срабатывает два раза(вместо одного)....


3-75466           Андрей1               2001-12-19 11:25  2002.01.24  
Для работы в Oracle существует PL/SQL Developer. Существует ли чё-то подобное для MS SQL Server?


14-75664          Vitaly                2001-11-29 14:20  2002.01.24  
Из дневника ученика: