Главная страница
    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.45 MB
Время: 0.013 c
2-1149772292
ALe_x
2006-06-08 17:11
2006.06.25
размер файла


15-1148876589
lobach
2006-05-29 08:23
2006.06.25
Триал


15-1148826469
AlexanderMS
2006-05-28 18:27
2006.06.25
Декомпиляторы.


2-1149491203
bevaine
2006-06-05 11:06
2006.06.25
преобразование


2-1149704397
Mr tray
2006-06-07 22:19
2006.06.25
в каком модуле содержится MAKELANGID?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский