![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
И снова...и опять HEX [D7, XP]
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]*файл
простите