Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > Delphi > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 18.06.2018, 14:23   #1
Fakov
Форумчанин
 
Регистрация: 13.12.2009
Сообщений: 79
Репутация: 10
По умолчанию Поиск и замена байтов

Собственно сабж братцы в следующем.
Хочу найти в файле двоичную последовательность, и перед ней заменить байт на нужный мне.
Делаю так:
Код:

procedure TForm1.Button1Click(Sender: TObject);
var
i:integer;
begin
  imp:=ExtractFileName(f);
  s:=$0D;

  fs:=TFileStream.Create(imp, fmOpenReadWrite);
  fs.Seek($42544E, fs.Position-1);
  fs.Read(s, sizeof(s));
  if s<>$0D42544E then
    begin
    fs.Seek($42544E, fs.Position-1);
    //fs.Position:=fs.Position-4;
    s:=$0D;
    fs.Write(s, sizeof(s));
    end;
  fs.Free;

end;

(это уже многочисленная вариация попытки, знаю что не работает). Собственно как это сделать правильно?

Я ищу последовательность $42544E, и хочу перед ней поставить байт 0D если там стоит 00 или 05. Как это сделать?
Fakov вне форума   Ответить с цитированием
Старый 18.06.2018, 14:59   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,166
Репутация: 5241
По умолчанию

Цитата:
Сообщение от Fakov Посмотреть сообщение
fs.Seek($42544E
это не поиск, это попытка установить позицию в файле по смещению 4346958

поиск придётся писать самому, сравнивая побайтно.
примерно, как тут описано - http://programmersforum.ru/showthread.php?t=196864
Serge_Bliznykov вне форума   Ответить с цитированием
Старый 18.06.2018, 22:33   #3
digitalis
Участник клуба
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Адрес: Минск
Сообщений: 925
Репутация: 365
По умолчанию

А если там непрерывная последовальность бит, и искомая маска не выравнивается на границу байта/слова ?
001011100010001100......, маска поиска 10111
Конкретно задача неизвестна, но не исключен вариант побитного сравнения

Последний раз редактировалось digitalis; 18.06.2018 в 22:36.
digitalis вне форума   Ответить с цитированием
Старый 19.06.2018, 03:37   #4
northener
Профессионал
 
Регистрация: 15.07.2013
Сообщений: 1,442
Репутация: 477
По умолчанию

Цитата:
Сообщение от digitalis Посмотреть сообщение
А если там непрерывная последовальность бит, и искомая маска не выравнивается на границу байта/слова ?
Для сего форума это перебор. Про биты ТС говорит только по своей малограмотности.
Ну и в добавок. Где, когда и в каком файле вы видели "последовательность бит" без привязки к байтам этого файла?
northener вне форума   Ответить с цитированием
Старый 19.06.2018, 11:04   #5
digitalis
Участник клуба
 
Аватар для digitalis
 
Регистрация: 04.02.2011
Адрес: Минск
Сообщений: 925
Репутация: 365
По умолчанию

Я предвидел этот вопрос и накорябал черно-белый .bmp Так там побитно все. И без привязки (не к байтам, а к границам байта) .
И если бы я искал последовательность "точка - две_точки - три_точки" - она нашлась бы не на границе байта.
Впрочем, Вы правы - для этого вопроса это слишком глубокие дебри. Кстати, про биты ТС не говорит, это уж я расширил вопрос до неприличия
Изображения
Тип файла: jpg wh1.JPG (30.2 Кб, 17 просмотров)

Последний раз редактировалось digitalis; 19.06.2018 в 11:34.
digitalis вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск и замена II4eJI Microsoft Office Excel 2 09.01.2015 02:27
Поиск и замена на C# Vladsevsk Помощь студентам 0 14.05.2013 16:53
[Delphi] замена байтов nokius2011 Помощь студентам 5 30.01.2012 22:08
поиск и замена evdss Microsoft Office Excel 7 18.03.2011 03:05
поиск и замена gabbachild Microsoft Office Excel 4 26.01.2010 18:16


23:25.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru