Help с программой
Я начинаю только изучать делфи. Кое что освоил. Но вот задумал написать прогу. Как мне сделать,чтоб:открываем файл(бинарник),и чтоб прога начинала в нём искать заданные мною фрагменты в hex-формате. И потом найденные фрагменты надо вывести куда нибудь(в таблицу). И чтоб потом можно было заменить найденные франменты на свои. Помогите плиз
Для начала помогите с организацией поиска найденных заранее определённых кусков бинарника в таблицу. Как мне лучше будет искать изначально заданные фрагменты загруженного файла? Файл я открываю через файл. потоки: procedure TForm1.N2Click(Sender: TObject); begin if OpenDialog1.Execute then begin fs:=TFileStream.Create('111.bin', fmOpenReadWrite); end; end; |
nemo555
По большому счёту принцип работы программы от языка не зависит. Прямая дорога к алгоритма поиска подстроки в строке. Я бы рекомендовал реализовать КМП (как самый попсовый) или сдвиг-или (как очень простой в реализации, если разобраться с его сутью. Но у него есть ограничение на длину искомой подстроки). Если файл заведомо меньше доступного объёма (виртуальной) памяти, то я бы банально считал его в память целиком для дальнейшего поиска требуемого фрагмента. |
Цитата:
Можно попробовать следующим образом,но тут идёт подход с проекцией файла: Код:
var |
DillerInc
Цитата:
|
Всем спасибо. Буду разгребать. Ещё вопросик. Как лучше сделать округление числа. Я использую ф-ю round. Но получается полное округление. А мне надо допустим до одной десятой. Пример: 12,5467845416216
Округлить надо до одной цифры после запятой. Через какую ф-ю сделать? |
round((12,5467845416216)*10) / 10 = 12,500000000000...
|
CyraxZ Молоток! Отсюда вывод - хочеш быть хорошим программистом, надо хорошо знать математику. :advice:
|
Время: 02:06. |
Время: 02:06.
© OSzone.net 2001-