Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
Вниз??? Найти похожие ветки
← →
ZV © (2006-06-04 23:44) [0]Не пойму что в результате присвоиться d.
d := true;
d := d and (b = (b and Lpt.ReadPort(GetCurrentPort,2))) ;
Объясните что здесь к чему. Интересует вторая строка, что то я не пойму что здесь происходит. Код взят из исходника.
← →
ZV © (2006-06-04 23:56) [1]function TForm1.CLK : boolean ;
Var
d : boolean;
b : integer;
begin
b := StrToInt(ComboBox5.Text); //-- установка бита
d := true;
d := d and (b = (b and Lpt.ReadPort(GetCurrentPort,2))) ; // ??????
← →
Loginov Dmitry © (2006-06-05 00:21) [2]А что непонятно?
"and" и "=" - это операции, которые возвращают результат True и False.
Теперь все понятно?
← →
ZV © (2006-06-05 00:43) [3]Вот это и непонятно.Если можеш опиши что происходит в этой строке(логику)что к чему и что с чем и если так то как. Я непойму логики
← →
Юрий Зотов © (2006-06-05 05:45) [4]d := true;
d := d and (...)
Да уж...
Однажды, после нескольких дней работы в одной конторе (причем, как это ни странно, конторе серьезной и широко известной) я показал кусок чужого кода соседу и попросил: "Слушай, Дим, посмотри, пожалуйста, что-то я сомневаюсь. Конечно, я работаю здесь совсем недавно и в проект еще не въехал, поэтому могу и ошибаться, но вот здесь, кажется, написана чушь".
Димка посмотрел и высказался так: "Ну Юрий Сергеевич, ну Вы что, не видите? Это писал ПРОГРАММИСТ, это надо переписывать".
Увы, эту его горькую шутку потом приходилось вспоминать не раз. Вот и сейчас вспомнилась.
> ZV © (04.06.06 23:44)
В переводе на "русский" язык это звучит так: "если в значении, которое вернула функция ReadPort, выставлены в 1 все биты, которые выставлены в 1 в значении переменной b, то d:=True, иначе d:=False".
Если верить комментарию "установка бита", то в переменной b должен быть выставлен в 1 только один бит (т.е., в ComboBox5.Text должно содержаться число, являющееся степенью двойки: 1, 2, 4, 8 и т. д.). Таким образом, речь идет о проверке того, выставлен ли тот же самый бит на порту. Причем часть этого кода можно безболезненно выкинуть и оставить только:
b := StrToInt(ComboBox5.Text);
d := b = b and Lpt.ReadPort(GetCurrentPort,2) ;
← →
ZV © (2006-06-05 08:58) [5]Очень благодарен тебе Юрий. Вот это я и хотел узнать. Спасибо
← →
Loginov Dmitry © (2006-06-05 10:21) [6]Loginov Dmitry © (05.06.06 0:21) [2]
Да уж... Чушь написал. Сорри!. В такое время уже спать нужно :)
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.06.25;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.008 c