![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 16.11.2009
Сообщений: 14
|
![]()
Требуется по заданному смещению, заменить один байт на другой.
Код поиска нужного нам байта: Код:
Смещение, в котором находится данный байт: "00А0". Каким образом программе указать, что именно в данном смещении, нужно найти схожий байт, и заменить его на нужный...? |
![]() |
![]() |
![]() |
#2 |
*
Старожил
Регистрация: 22.11.2006
Сообщений: 9,201
|
![]()
f.Seek(смещение,soFromBeginning(отк уда отсчитывать));
Вы ведь в i указываете смещение? |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 16.11.2009
Сообщений: 14
|
![]()
С HEX-ом работаю в 1-й раз, поэтому вопросы могут показаться до простоты идиотскими, заранее извиняюсь.
Взял исходники HEX-редактора. В 1-м столбце выводится адрес смещения, во 2-м байты, в 3-м еще что-то. Смещение мы выводим таким образом: Код:
Пример. По адресу смещения "0090", мы хотим заменить байт "6В" на какой-либо. "0090" - адрес, переводим в 2-ю систему, это у нас будет "144". Если написать: Код:
Я скорее всего не могу понять, как правильно задать смещение и откуда отсчитывать... В справочной Delphi нашел вот это: Код:
|
![]() |
![]() |
![]() |
#4 | |
Белик Виталий :)
Старожил
Регистрация: 23.07.2007
Сообщений: 57,097
|
![]() Цитата:
I'm learning to live...
|
|
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 16.11.2009
Сообщений: 14
|
![]()
Примерно понятно, но не понятно как в моей задаче перейти к этомй байту, зная адрес смещения. Напротив смещения, выводится 16 чисел, и вот реди этих 16-ти чисел, есть нужный нам байт. Тогда получается адрес смещения, к-й выводится у меня в 1-м столбце - это совсемне то?
Разобрался, пишем просто порядковый номер байта, в строке, тоесть: 0099 (он у меня 9й по счету). Последний раз редактировалось Lvenok1987; 16.11.2009 в 17:21. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 16.11.2009
Сообщений: 14
|
![]()
Так, нажав кнопку, по заданному адресу у нас заменяется какой-либо байт на "3А".
Код:
|
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Получение младшего и старшего байта числа. | spamer | Общие вопросы Delphi | 10 | 17.04.2009 15:43 |
Когда отправляю tStream, теряю 4 байта. | Altera | Работа с сетью в Delphi | 3 | 19.03.2009 19:05 |
Замена кода программы с Delhi5 на Delhi7 либо замена базы данных с Acessa на MySQL | DorianLeroy | Фриланс | 8 | 18.02.2009 18:52 |
взятие старшего и младшего байта | Djaconda | Общие вопросы Delphi | 2 | 29.09.2008 09:25 |
Вывод байта в двоичном пердставлении (С++) | trollik | Помощь студентам | 6 | 01.09.2008 23:55 |