Главная страница
    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.01 c
2-1149139006
Ezorcist
2006-06-01 09:16
2006.06.25
написание компонента от TClientSocket


15-1149077142
adalx
2006-05-31 16:05
2006.06.25
Вообще-то вопрос по сетям, но мне там не отвечают


4-1142961749
Woolen
2006-03-21 20:22
2006.06.25
Определение блокировки рабочей станции


1-1147980770
romychk
2006-05-18 23:32
2006.06.25
Компеонет View, как в Far по F3


4-1143356476
scolopax
2006-03-26 11:01
2006.06.25
Блокирование Desktop





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