|
Вопрос # 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 » Алгоритмы, преобразования модератором Ерёмин А.А.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|