| 
| 
 | Вопрос # 6 136/ вопрос решён / | 
 |  Доброго времени суток, уважаемые эксперты!Можно ли средствами DELPHI реализовать такую штуку:
 сформировать условие для оператора IF в виде string, а потом подставить этот результат в условие для оператора?
 Приложение:Переключить в обычный режим  s1:='';s2:='';s3:='';A:=5;B:=6;C:=7;if A<5 then s1:='OR A<5';if B>6 then s2:='OR B>6';if C=7 then s3:='OR C=7';s:=s1+s2+s3;  
|  |   Вопрос задал: vitalik32 (статус: Посетитель)Вопрос отправлен: 15 мая 2012, 10:01
 Состояние вопроса: решён, ответов: 0.
 |  
 Мини-форум вопросаВсего сообщений: 17; последнее сообщение — 16 мая 2012, 11:11; участников в обсуждении: 4. 
|   | min@y™ (статус: Доктор наук), 15 мая 2012, 10:16 [#1]:Можно, в принципе. Для этого нужно написать парсер логических выражений, который и будет заниматься вычислением и выдавать результат типа Boolean. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | Мережников Андрей (статус: Абитуриент), 15 мая 2012, 19:05 [#2]:а зачем городить такой огород, если формирование строки все равно происходит по условиям? Не проще ли сразу вычислять значение логической переменной? |  
|   | bugmenot (статус: 3-ий класс), 15 мая 2012, 20:51 [#3]: if s=TRUE thenУже внушает. виконання програми розпочинається з того самого мiсця, де призупинилося.
 
 |  
|   | vitalik32 (статус: Посетитель), 16 мая 2012, 08:13 [#4]:Дело в том, что s не всегда состоит из s1, s2, s3. Условий может быть до 10. Иногда не все условия должны включаться в результирующий s.
 |  
|   | vitalik32 (статус: Посетитель), 16 мая 2012, 08:18 [#5]:Например, могут получаться в результате такие условия: 
 if (A=6) and (B>7) and (c=8) then ....
 if (A=6) and (c=8) then ....
 if (c=8) then ....
 if (A=6) or (B>7) or (c=8) then ....
 |  
|   | min@y™ (статус: Доктор наук), 16 мая 2012, 08:21 [#6]:А как ты это собираешься использовать на практике? Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | vitalik32 (статус: Посетитель), 16 мая 2012, 08:31 [#7]:Мне это нужно, чтобы сделать расписание старта процедуры: пользователь выбирает в какие дни недели запускать программу, в какие часы, и т.д. Например, Пн, Ср, Пт, каждые 2 часа.
 Или: Пн, Пт, в 12:00 и 23:00
 
 В процессе эксплуатации программы - пользователь мог бы менять расписание по своему усмотрению.
 |  
|   | min@y™ (статус: Доктор наук), 16 мая 2012, 09:08 [#8]:Я не зря спросил про практическое использование. Теперь я точно уверен, что никакие строковые условия тут не нужны. 
 Почитай вот это, как раз в тему.
 
 Было дело - я написал подобную программку. Кроме всего прочего, она по времени генерировала пользовательские события. Могу подарить. Выглядит она вот так:
 
   Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | vitalik32 (статус: Посетитель), 16 мая 2012, 09:27 [#9]:Вот примерно это мне и нужно. Не сохранился у Вас проект програмки? Был бы очень признателен. Хочу посмотреть - как реализовано у Вас расписание ...
 Мыло: vitalik32@list.ru
 |  
|   | min@y™ (статус: Доктор наук), 16 мая 2012, 09:48 [#10]: Цитата (vitalik32): Не сохранился у Вас проект програмки? Конечно сохранился! У меня ничего не пропадает!
 
 Цитата (vitalik32): Хочу посмотреть - как реализовано у Вас расписание ... Выслал тебе исходники.
 Играйся на здоровье.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | vitalik32 (статус: Посетитель), 16 мая 2012, 09:50 [#11]:Спасибо огромное, min@y™. |  16 мая 2012, 09:50: Статус вопроса изменён на решённый (изменил автор вопроса — vitalik32) 
|   | min@y™ (статус: Доктор наук), 16 мая 2012, 10:05 [#12]: Цитата (vitalik32): Статус вопроса изменён на решённый (изменил автор вопроса — vitalik32) Рано радуешься. Чойта я сомневаюсь, что ты осилишь мои исходники.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | vitalik32 (статус: Посетитель), 16 мая 2012, 10:13 [#13]:Зато есть где поучиться как писать код. Проект загрузил - но он не запускается. Ругается что нет классов каких-то:
 SPCPanel,  Placemnt,   RXCtrls, QProgBar, CoolTrayIcon,   SPCButton,
 AppEvent, Lcd99,  ALProgressBar, TB2Item, TBSkinPlus,
 TB2MRU;
 Но зато смотрю сам код - там много интересного.
 |  
|   | min@y™ (статус: Доктор наук), 16 мая 2012, 10:27 [#14]: Цитата (vitalik32): Зато есть где поучиться как писать код.  Мой код не претендует на предел совершенству.
 
 Цитата (vitalik32): Проект загрузил - но он не запускается. Ругается что нет классов каких-то: SPCPanel, Placemnt, RXCtrls, QProgBar, CoolTrayIcon, SPCButton, AppEvent, Lcd99, ALProgressBar, TB2Item, TBSkinPlus, TB2MRU; Ясен пень, там полно левых компонентов.
 Вместо этого помучай exe-шник, посмотри, как там настройки реализованы.
 Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  
|   | vitalik32 (статус: Посетитель), 16 мая 2012, 10:36 [#15]:Ок. Спасибо. |  
|   | vitalik32 (статус: Посетитель), 16 мая 2012, 10:49 [#16]:Из анализа твоей проги понял, что надо использовать множества: set of
 а потом искать совпадения во множестве при помощи if A in B
 и т.д. так можно решить мою задачу...
 во как полезно бывает подглядеть чужой код...
 |  
|   | min@y™ (статус: Доктор наук), 16 мая 2012, 11:11 [#17]:Кроме множеств, можно ещё списки использовать. Выбор зависит от конкретики задачи. Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп! |  20 июня 2012, 21:00: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Алгоритмы, преобразования модератором Ерёмин А.А. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |