![]() |
|
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]()
|
|
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
Подскажите, плиз. Такая ситуация: есть файл нетипизированной структуры, необходимо поменять значение предположим 10 байта независимо от того какое там было значение на определенную константу. можно с примером
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Romikgy |
|
|||
![]() Любитель-программер ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 7326 Регистрация: 11.5.2005 Где: Porto Franco Odes sa Репутация: 26 Всего: 146 |
а что сложного открываем файл ищем нужную позицию и пишем что нужно
-------------------- Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. |
|||
|
||||
| Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
||||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
Snowy, спасибо. не подскажешь, твой код добавляет байты в позицию, смещая остальные, или перезаписывает существующие?
и второе, непрокомментируешь эту строчку?
если я знаю порядковый номер байта в файле, то как мне его найти? что означает $A200? -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Cashey, перезаписывает.
$A200 - это и есть порядковый номер байта, но 16-тиричном виде. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
Snowy, что то не работает. Пишу:
По идеи вроде бы должно перезаписатся 4 байта начиная с первого, но этого не происходит. т.е. когда просматриваю файл через HEX редактор ничего не меняется Это сообщение отредактировал(а) Cashey - 10.11.2006, 11:49 -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Matematik |
|
||||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1027 Регистрация: 11.3.2006 Репутация: 17 Всего: 50 |
Работает. Перезаписывает начиная со 2го байта Это сообщение отредактировал(а) Matematik - 10.11.2006, 11:55 |
||||
|
|||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
ладно, поковыряюсь еще
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
в продолжение темы....
как найти в TFileStream заданную последовательность байтов, для определения номера вхождения для функции Seek()? проще говоря надо найти и заменить заданную последовательность байтов. -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Christoph |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 667 Регистрация: 23.1.2008 Где: Харьков Репутация: 1 Всего: 11 |
считывай в буфер, затем StringReplace (в справке описание функции), и заново записывай строку в файл
-------------------- ![]() |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Длины последовательностей совпадают или нет? -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
нет, не совпадают. но нужно найти первую позицию входа пытаюсь пройти весь файл по блокам для сравнения с заданой последовательностью:
но почему то после fs.Read(s2,Length(s2)) ; s2 всегда пустое. как правильно считать данные из потока? -------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Файл больше 50кб? Или меньше?
Если файл большой, то нужно будет производить поблочное чтение и замену внутри блока с последующей записью в новый файл. Если каждый раз удлинять блок размером мегабайт в 10 и копировать огромный остаток, то операция займет кучу времени. -------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
| Cashey |
|
|||
![]() Бессмертный ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3441 Регистрация: 13.11.2002 Где: в столице Репутация: 2 Всего: 60 |
размер файла примерно 160 кб
-------------------- библия учит любить ближнего, а камасутра обучает как именно |
|||
|
||||
| Alexeis |
|
|||
![]() Амеба Профиль Группа: Админ Сообщений: 11743 Регистрация: 12.10.2005 Где: Зеленоград Репутация: 109 Всего: 459 |
Вот написал быстрый алгоритм поиска с заменой без частых алокаций памяти (размер файла не выше 1Мб иначе большие расходы памяти)
-------------------- Vit вечная память. Обсуждение действий администрации форума производятся только в этом форуме гениальность идеи состоит в том, что ее невозможно придумать |
|||
|
||||
![]()
|
| Правила форума "Delphi: Общие вопросы" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |