Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

И снова...и опять HEX [D7, XP]


Страницы:   1 2 3

MOO ©   (2008-01-05 22:42:00) 

Воопсчем так, загружаю я фалег с помощью потока TFileStream и с помощью него читаю определенный блок байтов например: " 00 00 00 D465 7F"
Я читаю выделенные четыре байта, но выходит так, что он их переворачивает и они становятся вида: " D4 00 00 00"
Может я что то неправильно делаю, но видел HEX редактор сделанный на DElphi там точно также. Есть какой-нибудь другой способ уже готовый или всё таки самому писать свою функцию?


{RASkov}   (2008-01-06 00:24:00) [21]

> [34] MOO   (06.01.08 00:23)
> Еще какаие предложения

Делай как знаешь....
Ты толком не можешь объяснить, что хочешь.... к советом прислушиваться не хочешь....
Какие могут быть предложения???
:)


palva   (2008-01-06 00:24:00) [22]

А потом в цикле каждый байт переводи в Hex Хлопотно, но надежно.


DVM   (2008-01-06 00:24:00) [23]


> Я хочу сразу считать правильно)

Для того чтобы правильно считать, надо правильно туда положить.


MOO   (2008-01-06 00:23:00) [24]


> DVM

Я хочу сразу считать правильно)

> {RASkov} ©   (06.01.08 00:20) [33]

Еще какаие предложения


{RASkov}   (2008-01-06 00:20:00) [25]

> [31] MOO   (06.01.08 00:20)

Читай побайтово...


DVM   (2008-01-06 00:20:00) [26]


> Хочу вернуть в обратное первоначальное положение соответственно

писать правильно сразу в файл не пробовал?


MOO   (2008-01-06 00:20:00) [27]

Хорошо хочу получить HEX  в начально расположении


MOO   (2008-01-06 00:18:00) [28]

Хочу вернуть в обратное первоначальное положение соответственно


DVM   (2008-01-06 00:18:00) [29]


> MOO

ты скажи что ты хочешь в результате получить?


Германн   (2008-01-06 00:17:00) [30]


> Если я спрошу как этого избежать то ты ответишь я полагаю,
>  что делать не в integer? )

Нет. Просто запомни раз и навсегда, что в памяти байты целого числа расположены не так как они написаны на бумаге.


DVM   (2008-01-06 00:17:00) [31]


> Если я спрошу как этого избежать то ты ответишь я полагаю,
>  что делать не в integer? )

дело не в самом integer, а в том как ты в этот integer помещаешь байты и как потом пытаешься смотреть.


{RASkov}   (2008-01-06 00:16:00) [32]

> [23] MOO   (06.01.08 00:11)
> > edit1.Text:=IntToHex(BM, 8);
>
> Зачем 8

А затем, что бы отобразить 4 байтовый интегер в хекс представлении правильно.....

> Если я спрошу как этого избежать то ты ответишь я полагаю,
> что делать не в integer? )

Что в итоге хочешь добится?


palva   (2008-01-06 00:15:00) [33]

> Если я спрошу как этого избежать
Этого не надо избегать. Машина делает не то что вы хотите, а то что вы ей скомандовали. Надо чтобы первое совпадало со вторым.


DVM   (2008-01-06 00:13:00) [34]


> Почему вы думаете, что IntToHex даст вам байты в том же
> порядке, в каком они лежат в памяти?

я об этом же


MOO   (2008-01-06 00:11:00) [35]


> edit1.Text:=IntToHex(BM, 8);

Зачем 8

> если таким макаром в integer считать файл 00 00 00 01, то
> в integer будет 1000000

Если я спрошу как этого избежать то ты ответишь я полагаю, что делать не в integer? )


palva   (2008-01-06 00:10:00) [36]

Откуда вы взяли что переворачивает, если читаете в Integer? Вы байты читаете или четырехбайтовые целые? Почему вы думаете, что IntToHex даст вам байты в том же порядке, в каком они лежат в памяти?


DVM   (2008-01-06 00:09:00) [37]


> {RASkov} ©   (06.01.08 00:07) [20]

да в данном примере дело вообще не в файле, а в том КУДА он все это читает.


{RASkov}   (2008-01-06 00:07:00) [38]

И в данном примере, файл должен быть не менее 24 байт, иначе все коту под хвост)


DVM   (2008-01-06 00:06:00) [39]


> MOO

ты бы сразу и говорил, что в integer читаешь, а то байты переварачиваются.
все нормально

если таким макаром в integer считать файл 00 00 00 01, то в integer будет 1000000


{RASkov}   (2008-01-06 00:05:00) [40]

Да, и на всякий случай, хотя думаю, что сам знаешь и это был только "кусок проблемного кода", но....
Утечки нам не нужны, т.е. Fs.Free; незабываем делать.... и желательно в блоке finally


Страницы:   1 2 3

Наверх

Титульная страница Поиск, карта сайта Написать письмо