Работа с файлами, поиск по сигнатуре |
Здравствуйте, гость ( Вход | Регистрация )
Here You Can Support Our Work and .:LavTeaM:. Services |
Работа с файлами, поиск по сигнатуре |
15.09.2004 - 17:00
Сообщение
#1
|
|
Завсегдатай Группа: Пользователи Пользователь №: 167 Сообщений: 183 Регистрация: 4.03.2003 Загружено: байт Скачано: байт Коэффициент: --- Спасибо сказали: 0 раз(а) |
Допустим мне надо найти в файле последовательность байт FE7455 и заменить эти байты на 909090?
Как это проделать на дельфи? Можно пример? |
|
|
16.09.2004 - 03:39
Сообщение
#2
|
|
The Last Gunslinger Группа: Пользователи Пользователь №: 6829 Сообщений: 1008 Регистрация: 26.04.2004 Из: Беларусь, Гомель Загружено: байт Скачано: байт Коэффициент: --- Спасибо сказали: 10 раз(а) |
Вот тебе пример замены трех байтов в файле начиная с пятой позиции.
Код var f: File; s: array [1..3] of Byte; begin s[1] := $90; s[2] := $90; s[3] := $90; AssignFile(f, 'c:\temp.tmp'); Reset(f, 1); Seek(f, 5); BlockWrite(f, s, SizeOf(s)); CloseFile(f); end; Как найти нужную последовательность, думаю, проблем тоже не будет. С помощью BlockRead считай весь файл целиком, найди нужный кусок простым сравнением (к сожалению аналога функции memcmp в Си для Delphi я не знаю) и получи искомую позицию. А там уж по аналогии с вышеописанным, только знай себе меняй позицию в Seek и данные в S. |
|
|
Текстовая версия | Сейчас: 24.04.2024 - 01:03 |