![]() |
Модераторы: Snowy, MetalFan, bems, Poseidon |
![]() ![]() ![]() |
|
Somebody32 |
|
||||||
![]() Overclocker ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Данная тема является дополнительной к этой
Теперь вопрос в следующем, как считать данные, что находятся в файле перед записью. Т.е. мне требуется создать их бекап. Пишу так:
Соответственно проблема в следующем: если запустить программу, осуществить запись, а потом строку:
на
то в temp будет совсем не то, что я писал в тот раз. Прошу помощи, как я понял, ошибка мелочная, но никак поймать ее не могу. |
||||||
|
|||||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
ничо не понял. давай неработающий код.
а то когда ты там чего заменяешь - непонятно -------------------- There are always someone smarter than you... |
|||
|
||||
Somebody32 |
|
|||
![]() Overclocker ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Собственно он выше.
Объясняю. Есть файл, в который по офсетам надо записать данные, запись идет прекрасно, все работает. Но появилась потребность бекапить данные перед записью, т.е сначала пробежаться по адресам, считать все, что там было, а потом уже писать. Так вот, допустим по адресу 003F13E3 я записал 2A002A002A. Пытаюсь считать:
И он мне выдает последовательность цифр совсем не похожую на 2A002A002A. |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 6 Всего: 111 |
Сдаётся мне, что путаница у тебя возникает из-за того, что в HEX виде твои данные «смотрятся» наоборот.
Добавлено через 31 секунду Выложи полный код. С типа переменных! |
|||
|
||||
Somebody32 |
|
|||
![]() Overclocker ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
|
|||
|
||||
tht |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 118 Регистрация: 10.5.2006 Репутация: нет Всего: 1 |
а ты не мог бы показать строку HEX данные который ты записываешь и те данный которые тебе удается прочитать ? я бы тогда точно понял что у тебя за проблема.
|
|||
|
||||
MetalFan |
|
|||
![]() Аццкий Сотона ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 3815 Регистрация: 2.10.2006 Где: Moscow Репутация: 22 Всего: 128 |
Somebody32, и на основе каких данных ты делаешь вывод о " неправильной" записи?
делаешь Write, потом сразу Read и не то получаешь? ну так правильно тогда все... -------------------- There are always someone smarter than you... |
|||
|
||||
Somebody32 |
|
|||
![]() Overclocker ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
MetalFan, естественно я прогу перезапускаю.
tht, пишу по офсету 003F13E3 данные 2A002A002A, а получаю: 704653824 |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 6 Всего: 111 |
Если переведёшь 704653824, то кое что заметишь. Значит ты где то глючишь
![]() Добавлено через 2 минуты и 57 секунд Что то меня смущает отсутсвие seek в коде ![]() |
|||
|
||||
Somebody32 |
|
|||
![]() Overclocker ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
WinHex'ом перевел это в HEX, оказалось то, что надо, как теперь только программно это в хекс перегнать?
|
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 6 Всего: 111 |
Ответ подкупающий своей неожаднностью -- с помощью IntToHex.
|
|||
|
||||
Somebody32 |
|
|||
![]() Overclocker ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
Yanis,
это его аналог Добавлено через 5 минут и 7 секунд Yanis, да, что-то совсем косячить стал, спасибо, работает. |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 6 Всего: 111 |
Я бы сказал, что это его противоположность ![]() ![]() |
|||
|
||||
Somebody32 |
|
|||
![]() Overclocker ![]() Профиль Группа: Участник Сообщений: 85 Регистрация: 2.1.2006 Где: Санкт-Петербург Репутация: нет Всего: 1 |
еще вопрос появился,
если пишу это: 00002A002A002A002A, то, как видно из кода выше - пишу макс по 8 символов, иначе Strtoint выпадает с ошибкой, то, при чтении - нули урезаются, т.е мне выдается 2A002A002A02A. что с этим делать? |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 6 Всего: 111 |
Потому что 8 символов в HEX, это 4 байта. А 4 байта это максимальная размерность целого числа. Так что делай выводы.
Зачем тебе вообще числа? Используй обычные буферы типа массива символов. |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Для новичков" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Для новичков | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |