Главная страница
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.034 c
9-1131449174
VolanD666
2005-11-08 14:26
2006.06.25
Frustum in D3D


15-1149056867
Новичоккк
2006-05-31 10:27
2006.06.25
Несколько TClientSocket


3-1146128504
Shlomo
2006-04-27 13:01
2006.06.25
Поле uniqueidentifier запоздало генерирует своё значение?


2-1149755108
Perf2k2
2006-06-08 12:25
2006.06.25
Вопрос по алгоритму


15-1148799490
Kerk
2006-05-28 10:58
2006.06.25
Два вопроса