Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Запись HEX в бинарник 
V
    Опции темы
Somebody32
Дата 19.2.2007, 17:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Здравствуйте. Передо мною стоит следующая задача: есть файл в нем есть офсет и данные, которые я должен по нему записать.
Пишу так:
Код

    fs:=TFileStream.Create(OpenDialog1.FileName,fmOpenReadWrite);
    wr:=TWriter.Create(fs,1);
    dw:=StrToInt('$'+data);
    wr.Position:=StrToInt('$'+ofs);
    wr.WriteInteger(dw);
 
Но, если открыть хекс редактором, то по заданному офсету записано совсем не то. Есть альтернативные способы решения данной проблемы?
Заранее спасибо.
PM MAIL ICQ   Вверх
Snowy
Дата 19.2.2007, 17:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Код

    fs:=TFileStream.Create(OpenDialog1.FileName,fmOpenReadWrite);
    dw:=StrToInt('$'+data);
    fs.Position:=StrToInt('$'+ofs);
    fs.Write(dw, SizeOf(dw));

PM MAIL   Вверх
Somebody32
Дата 19.2.2007, 17:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Спасибо, все работает.
PM MAIL ICQ   Вверх
Somebody32
Дата 21.2.2007, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Еще вопрос, это нормально, что программа иногда пишет данные стандартно, а иногда  - перевернуто. Данные считываются корректно.
Т.е. 2A002A002A такое записала нормально, а 01001150 записала 05110001, как объяснить?
PM MAIL ICQ   Вверх
Matematik
Дата 21.2.2007, 23:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1027
Регистрация: 11.3.2006

Репутация: 17
Всего: 50



Цитата(Somebody32 @ 21.2.2007,  23:12)
Еще вопрос, это нормально, что программа иногда пишет данные стандартно, а иногда  - перевернуто. Данные считываются корректно.
Т.е. 2A002A002A такое записала нормально, а 01001150 записала 05110001, как объяснить?

Кажись нормально.
http://ru.wikipedia.org/wiki/%D0%9F%D0%BE%...%82%D0%BE%D0%B2

ЗЫ
на будущее запомни:
Один вопрос - один топик
http://forum.vingrad.ru/act-SR/f-27.html п10



Это сообщение отредактировал(а) Matematik - 21.2.2007, 23:19
PM MAIL WWW ICQ   Вверх
Snowy
Дата 22.2.2007, 00:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 11363
Регистрация: 13.10.2004
Где: Питер

Репутация: 192
Всего: 484



Потому что в памяти порядок байт обратный читаемому глазом.
То есть пишем $12$34$56$78, а в памяти они располагаются: $78$56$34$12 
А разница из-за того, что первый пример у тебя перевёртыш - он одинаково читается как прямо, так и обратно: $2A$00$2A$00$2A
PM MAIL   Вверх
Somebody32
Дата 22.2.2007, 08:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Overclocker
*


Профиль
Группа: Участник
Сообщений: 85
Регистрация: 2.1.2006
Где: Санкт-Петербург

Репутация: нет
Всего: 1



Все, еще раз спасибо!
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0867 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.