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:03:00) [41]

> [15] MOO   (05.01.08 23:54)

Впринципе все верно, но не грамотно....

> fs.Read(BM, 4);

Заменить, я уже говорил, на
fs.Read(BM, SizeOf(BM));
ну и здесь

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

правильнее было бы наверное
edit1.Text:=IntToHex(BM, 8);


MOO   (2008-01-05 23:58:00) [42]

и у seek кусок скобки убрать


MOO   (2008-01-05 23:54:00) [43]

Блин, что то я всех запутал вот=)

procedureTForm1.Button1Click(Sender: TObject);
var
 fs: TFilestream;
BM:integer;

begin
If opendialog1.Execute then
begin
fs:= TfileStream.Create(OpenDialog1.FileName,fmOpenReadWrite);
fs.Seek(20), soFromBeginning);
fs.Read(BM, 4);
edit1.Text:=IntToHex(BM, 2);
end;
end;


{RASkov}   (2008-01-05 23:51:00) [44]

> [12] MOO   (05.01.08 23:48)
> Короче ясно, что здесь не моя ошибка....

Неее... не, ты что.... ни в коем случае.... это всё Билл.... он такой сякой :)


{RASkov}   (2008-01-05 23:50:00) [45]

> [10] palva ©   (05.01.08 23:39)
> Ну и дальше что было? BM[0] = D4 а в файле четвертый байт равен 00 ?

> блок байтов например: "00 00 00 D4 65 7F"

Что-то не совсем клеется, ну да ладно... :)
Получает то он
> и они становятся вида: "D4 00 00 00"

А вроде должны ттогда быть D4 65 7F 00....

ЗЫ: Нееее, я не телепат :)


MOO   (2008-01-05 23:48:00) [46]

Короче ясно, что здесь не моя ошибка....


MOO   (2008-01-05 23:46:00) [47]

Упс писал вручную не копипастил, конечно там не третий


palva   (2008-01-05 23:39:00) [48]

> BM-Буффер
Что такое Буффер ? array[0..3] of Byte ?
Ну и дальше что было? BM[0] = D4 а в файле четвертый байт равен 00 ?
Вы уж рассказывайте.


{RASkov}   (2008-01-05 23:36:00) [49]

> [8] MOO   (05.01.08 23:26)
> BM-Буффер

А что это? Понятно, что буффер....(
Тогда бы уж так делать нужно
fs.Read(BM, SizeOf(Буффер));
Ты после открытия смещаешься на три байта

> fs.Seek(3, soFromBeginning);

А говоришь про первые 4 байта - это зачем, - запутать шпионов? :) Вообщем См [4] и исправляй ошибки)


> ТАм кода две строчки могли бы и сами догадатся

Нет уж.... я не гадалка :)


MOO   (2008-01-05 23:26:00) [50]

ТАм кода две строчки могли бы и сами догадатся

fs:= TfileStream.Create(name,fmOpenReadWrite);
fs.Seek(3, soFromBeginning);
fs.Read(BM, 4);


BM-Буффер

Так дело то еще в том, что как я уже сказал я видел такую проблему в HEX редакторе на DElphi. И что то мне кажется это не проблема, а так и должно быть. Короче наверно надо функцию писать


{RASkov}   (2008-01-05 23:22:00) [51]

> [5] MOO   (05.01.08 23:15)

Ты изъяснился бы яснее.... проблемным кодом поделился бы.... глядишь и в два счета решим твою траблу :)


{RASkov}   (2008-01-05 23:18:00) [52]

> [5] MOO   (05.01.08 23:15)

Я тут не как многие.... я не телепат :)


MOO   (2008-01-05 23:15:00) [53]

Думаешь? А объяснить что я не так делаю? ;)


{RASkov}   (2008-01-05 23:14:00) [54]

> [3] MOO   (05.01.08 23:04)

Что-то ты не так делаешь....

> Может я что то неправильно делаю, но

Во-во.... и я про то же)


MOO   (2008-01-05 23:04:00) [55]

Ну с помощью TFileStreamпользуюсь его функцией Read


Reindeer Moss Eater   (2008-01-05 22:55:00) [56]

что он их переворачивает

Кто "он"?


MOO   (2008-01-05 22:43:00) [57]

*файл
простите


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

Наверх

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