Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 6 136

/ вопрос решён /

Доброго времени суток, уважаемые эксперты!
Можно ли средствами DELPHI реализовать такую штуку:
сформировать условие для оператора IF в виде string, а потом подставить этот результат в условие для оператора?

Приложение:
  1.  
  2. s1:='';
  3. s2:='';
  4. s3:='';
  5. A:=5;
  6. B:=6;
  7. C:=7;
  8. if A<5 then s1:='OR A<5';
  9. if B>6 then s2:='OR B>6';
  10. if C=7 then s3:='OR C=7';
  11. s:=s1+s2+s3;
  12.  
  13.  


vitalik32 Вопрос решён, но можно продолжить его обсуждение в мини-форуме

Вопрос задал: vitalik32 (статус: Посетитель)
Вопрос отправлен: 15 мая 2012, 10:01
Состояние вопроса: решён, ответов: 0.


Мини-форум вопроса

Всего сообщений: 17; последнее сообщение — 16 мая 2012, 11:11; участников в обсуждении: 4.
min@y™

min@y™ (статус: Доктор наук), 15 мая 2012, 10:16 [#1]:

Можно, в принципе. Для этого нужно написать парсер логических выражений, который и будет заниматься вычислением и выдавать результат типа Boolean.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
Мережников Андрей

Мережников Андрей (статус: Абитуриент), 15 мая 2012, 19:05 [#2]:

а зачем городить такой огород, если формирование строки все равно происходит по условиям? Не проще ли сразу вычислять значение логической переменной?
bugmenot

bugmenot (статус: 3-ий класс), 15 мая 2012, 20:51 [#3]:

if s=TRUE then
Уже внушает.
виконання програми розпочинається з того самого мiсця, де призупинилося.

vitalik32

vitalik32 (статус: Посетитель), 16 мая 2012, 08:13 [#4]:

Дело в том, что s не всегда состоит из s1, s2, s3. Условий может быть до 10.
Иногда не все условия должны включаться в результирующий s.
vitalik32

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™

min@y™ (статус: Доктор наук), 16 мая 2012, 08:21 [#6]:

А как ты это собираешься использовать на практике?
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
vitalik32

vitalik32 (статус: Посетитель), 16 мая 2012, 08:31 [#7]:

Мне это нужно, чтобы сделать расписание старта процедуры: пользователь выбирает в какие дни недели запускать программу, в какие часы, и т.д.
Например, Пн, Ср, Пт, каждые 2 часа.
Или: Пн, Пт, в 12:00 и 23:00

В процессе эксплуатации программы - пользователь мог бы менять расписание по своему усмотрению.
min@y™

min@y™ (статус: Доктор наук), 16 мая 2012, 09:08 [#8]:

Я не зря спросил про практическое использование. Теперь я точно уверен, что никакие строковые условия тут не нужны.

Почитай вот это, как раз в тему.

Было дело - я написал подобную программку. Кроме всего прочего, она по времени генерировала пользовательские события. Могу подарить. Выглядит она вот так:
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
vitalik32

vitalik32 (статус: Посетитель), 16 мая 2012, 09:27 [#9]:

Вот примерно это мне и нужно.
Не сохранился у Вас проект програмки? Был бы очень признателен. Хочу посмотреть - как реализовано у Вас расписание ...
Мыло: vitalik32@list.ru
min@y™

min@y™ (статус: Доктор наук), 16 мая 2012, 09:48 [#10]:

Цитата (vitalik32):

Не сохранился у Вас проект програмки?

Конечно сохранился! У меня ничего не пропадает!

Цитата (vitalik32):

Хочу посмотреть - как реализовано у Вас расписание ...

Выслал тебе исходники.
Играйся на здоровье.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
vitalik32

vitalik32 (статус: Посетитель), 16 мая 2012, 09:50 [#11]:

Спасибо огромное, min@y™.

16 мая 2012, 09:50: Статус вопроса изменён на решённый (изменил автор вопроса — vitalik32)

min@y™

min@y™ (статус: Доктор наук), 16 мая 2012, 10:05 [#12]:

Цитата (vitalik32):

Статус вопроса изменён на решённый (изменил автор вопроса — vitalik32)

Рано радуешься. Чойта я сомневаюсь, что ты осилишь мои исходники.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!
vitalik32

vitalik32 (статус: Посетитель), 16 мая 2012, 10:13 [#13]:

Зато есть где поучиться как писать код.
Проект загрузил - но он не запускается. Ругается что нет классов каких-то:
SPCPanel, Placemnt, RXCtrls, QProgBar, CoolTrayIcon, SPCButton,
AppEvent, Lcd99, ALProgressBar, TB2Item, TBSkinPlus,
TB2MRU;
Но зато смотрю сам код - там много интересного.
min@y™

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

vitalik32 (статус: Посетитель), 16 мая 2012, 10:36 [#15]:

Ок. Спасибо.
vitalik32

vitalik32 (статус: Посетитель), 16 мая 2012, 10:49 [#16]:

Из анализа твоей проги понял, что надо использовать множества:
set of
а потом искать совпадения во множестве при помощи if A in B
и т.д. так можно решить мою задачу...
во как полезно бывает подглядеть чужой код...
min@y™

min@y™ (статус: Доктор наук), 16 мая 2012, 11:11 [#17]:

Кроме множеств, можно ещё списки использовать. Выбор зависит от конкретики задачи.
Делаю лабы и курсачи по Delphi и Turbo Pascal. За ПИВО! Пишите в личку, а лучше в аську. А ещё лучше - звоните в скайп!

20 июня 2012, 21:00: Вопрос перемещён из тематического раздела Delphi » Общие вопросы по программированию в раздел Delphi » Алгоритмы, преобразования модератором Ерёмин А.А.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:28
Выполнено за 0.03 сек.