Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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.014 c
2-1149601035
leito
2006-06-06 17:37
2006.06.25
Вывод в EXCEL


2-1149773285
Zikmu
2006-06-08 17:28
2006.06.25
Нумерация строк


2-1149314370
Тимофеич
2006-06-03 09:59
2006.06.25
pos or posex


15-1149096977
Nous Mellon_
2006-05-31 21:36
2006.06.25
Юр. вопрос


2-1149261261
ZV
2006-06-02 19:14
2006.06.25
COM port DRIVER





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский