Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
ВнизВот так грабли 8-) Найти похожие ветки
← →
Zhekson (2005-01-17 09:30) [0]Это рабочий код:
while (SG1.Cells[Col, Row] <> " --") do
begin
.................................
end;
А это нет:
while (SG1.Cells[Col, Row] <> " --") or (SG1.Cells[Col, Row] <> " ! ") do
begin
.................................
end;
Не то что на " ! " не останавливается, а на " --" перестаёт останавливаться. Это как понимать?
← →
Александр Иванов © (2005-01-17 09:31) [1]Что значит останавливается? Если говорит об ошибке, то неплохобы на ее текст посмотреть.
← →
begin...end © (2005-01-17 09:33) [2]> Zhekson (17.01.05 09:30)
Ну то, что может не останавливаться на втором условии, - это как раз понятно. И зависит это от значения первого условия. При соответствующей настройке компилятора, разумеется.
А результаты работы этого цикла - не такие, как должны быть?
← →
Zhekson (2005-01-17 09:43) [3]это код прохода по таблице(StringGrid) пока в ячейке не встретится " --"; Тут всё работает, а вот если я добавлю
or (SG1.Cells[Col, Row] <> " ! ")
то проход по таблице осуществляется, но ни на " --" не останавливается ни на " ! ".
8-)
← →
begin...end © (2005-01-17 09:47) [4]> [3] Zhekson (17.01.05 09:43)
Вы бы хоть код тела цикла привели...
← →
Александр Иванов © (2005-01-17 09:48) [5]and насколько я понял надо
← →
Neznaika © (2005-01-17 09:49) [6]Недавно делал что-то похожее, только с помощью repeat..until
В условии until вписывал необходимые условия и все работало.
И вообще я почему- то repeat люблю БОЛЬШЕ...
← →
ALS © (2005-01-17 09:49) [7]Непонятно, что ты хотел достичь проверкой
(SG1.Cells[Col, Row] <> " --") or (SG1.Cells[Col, Row] <> " ! ") ?
Это условие всегда будет TRUE. Попробуй
(SG1.Cells[Col, Row] <> " --") and (SG1.Cells[Col, Row] <> " ! ")
← →
Neznaika © (2005-01-17 09:52) [8]
> ALS © (17.01.05 09:49) [7]
> Непонятно, что ты хотел достичь проверкой
> (SG1.Cells[Col, Row] <> " --") or (SG1.Cells[Col, Row] <>
> " ! ") ?
> Это условие всегда будет TRUE.
Я чего-то не понимаю? А если у него в 1 строке "--" во 2 "!" а в 3 "хрен" тоже будет true
← →
begin...end © (2005-01-17 09:54) [9]> [8] Neznaika © (17.01.05 09:52)
Именно так. Тоже будет TRUE.
← →
Zhekson (2005-01-17 09:55) [10][4]
весь код там ни при чём... вопрос в том, почему конструкции
while (SG1.Cells[Col, Row] <> " --") и while (SG1.Cells[Col, Row] <> " ! ")
по отдельности работают, а
while (SG1.Cells[Col, Row] <> " --") or (SG1.Cells[Col, Row] <> " ! ")
не работают ;((
← →
begin...end © (2005-01-17 09:57) [11]> [10] Zhekson (17.01.05 09:55)
Ну потому что условие (SG1.Cells[Col, Row] <> " --") or (SG1.Cells[Col, Row] <> " ! " ВСЕГДА истинно. Зачем же его вычислять?
← →
Zhekson (2005-01-17 10:06) [12]Всем спасибо. C
and
заработало...
так точно, будетtrue
ведь перекрыть этот цикл можно только если и то и то = true.
← →
Neznaika © (2005-01-17 10:07) [13]Че-то я вообще запутался: так при AND IMHO должны выполнится оба условия, а ему надо при одном совпадении выпасть из цикла?
← →
begin...end © (2005-01-17 10:08) [14]> [13] Neznaika © (17.01.05 10:07)
True and False = False
← →
Neznaika © (2005-01-17 10:11) [15]Все понял...
Вчерашнее пиво совсем мозги атрофировало...
← →
Anatoly Podgoretsky © (2005-01-17 10:52) [16]Neznaika © (17.01.05 10:07) [13]
Оно и выполнится, возможно.
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2005.01.30;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.044 c