Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.25;
Скачать: CL | DM;

Вниз

???   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.031 c
11-1129286044
dvk
2005-10-14 14:34
2006.06.25
Проблема с 32-битным BitMap ом


9-1131538867
VolanD666
2005-11-09 15:21
2006.06.25
Количество теругольников в D3D.


4-1143463865
Sorcerer
2006-03-27 16:51
2006.06.25
Полупрозрачный MessageBox


2-1149274678
deplhi
2006-06-02 22:57
2006.06.25
EOleSysError: Class not registered(и снова про СОМ)


15-1149081898
Lamer@fools.ua
2006-05-31 17:24
2006.06.25
Генератор документации для .NET (C#) 2.0