Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Delphi, работа с массивами

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Компилируемые языки] >> Delphi, работа с массивами
Имя
Сообщение << Старые топики   Новые топики >>
Delphi, работа с массивами - 2009-12-21 01:55:09.900000   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
program fff;
const ff:array[1..4] of byte = ($10,$20,$20,$30);
begin
if(ff[2]=$2020)then MessageBox(0,'','',0);
end.

Как сделать что бы сравнивалось именно word а не байт?

MOV AL,BYTE PTR DS:[44DD35]
CMP AX,2020
JNZ SHORT 0044CFD4
PUSH 0 ; /Style = MB_OK|MB_APPLMODAL
PUSH 44CFDC ; |Title = ""
PUSH 44CFDC ; |Text = ""
PUSH 0 ; |hOwner = NULL
CALL 00406934 ; \MessageBoxA

Post #: 1
RE: Delphi, работа с массивами - 2009-12-21 14:52:27.390000   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666
Что именно то описывать? Как сравнить word с word ? а не byte с word ?

Такое меня не устраивает. Т.к. трачу лишние байты, да и тупо это.
if(ff[2]=$20)and(ff[3]=$20)then MessageBox(0,'','',0);
Post #: 2
RE: Delphi, работа с массивами - 2009-12-21 22:33:37.283333   
Sunzer

Сообщений: 253
Оценки: 31190
Присоединился: 2007-06-15 19:23:32.436666

quote:

ORIGINAL: _ruzmaz_

quote:

if(ff[2]=$20)and(ff[3]=$20)


… ну так бы сразу и написал))

if (PWord(@ff[2])^ = $2020) then MessageBox(0, '', '', 0);


Вот спасибо! Вчера в 3 ночи сидел.. уже голова не варила.. Я почти так же пробывал.
Post #: 3
Страниц:  [1]
Все форумы >> [Компилируемые языки] >> Delphi, работа с массивами







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.