![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#11 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
![]()
Дело не в @. Посмотри как ведет себя PChar() от строки начинающейся с #0. Пофиг что дальше, будет получен адрес пустой строки. А StringReplace и использует PChar() в цепочке обращений.
add Pos и PosEx нормально обработают двоичный ноль в строке. Вот ими и пользуйся, забей на StringReplace
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 05.07.2018 в 11:30. |
![]() |
![]() |
![]() |
#12 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
в данном случае сработает такой код:
Код:
код, конечно, не красивый и не универсальный, но зато работает. ![]() |
![]() |
![]() |
![]() |
#13 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,883
|
![]() |
![]() |
![]() |
![]() |
#14 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
ТС, а зачем, собственно, понадобились такие действия над данными?
О каких объёмах файлов идёт речь? Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#15 |
Пользователь
Регистрация: 13.12.2009
Сообщений: 85
|
![]()
До одного мегабайта. Позвольте подниму свою же тему, и вернусь с уже новой проблемой того же поля.
Помогите поправить исправно работающий код. Он корректно ищет строку из 4 байт FindDataDIS и заменяет ее на строку из 4 байт ChangeDataDIS. Как мне поправить данный код, чтобы он заменял строку из 4 байт строкой из 47 байт? Код:
|
![]() |
![]() |
![]() |
#16 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
Я это не из праздного любопытства спрашивал. Как думаешь, для чего?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#17 |
Пользователь
Регистрация: 13.12.2009
Сообщений: 85
|
![]()
Я пытаюсь предположить, но не уверен что есть какой либо вменяемый ответ на это, ввиду страшной безграмотности.
В среднем редактируемый файл 100-300кб. А то и меньше 100 даже. |
![]() |
![]() |
![]() |
#18 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
Давай, говори уже, не ссы, тут все свои! А то я скоро спать сваливаю. Сожрал таблетку снотворного размером с хоккейную шайбу.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
#19 |
Пользователь
Регистрация: 13.12.2009
Сообщений: 85
|
![]()
Вероятно, размер файла влияет на скорость работы с ним)
|
![]() |
![]() |
![]() |
#20 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
![]()
Уже теплее.
Ладно, расскажу, как бы это делал я. Если файл приемлемого размера, то гораздо проще загрузить его в память полностью и работать с ним как с массивом байтов по указателю. Для поиска читать побайтно не из файла, а из его копии в памяти. А для замены - не заниматься ерундой, гоняя буфера внутри массива с перераспределениями, а создать новый массив, куда и писать данные с учётом замен. А после всех замен сохранить всё сразу в другой файл или прям поверх исходного, если надо. я понятно объясняю.jpg А для чтения памяти побайтно есть TMemoryStream и его прекрасное свойство Memory: Pointer. 000077.png Всё, я спать, дальше сам давай. Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Поиск и замена байтов | Fakov | Общие вопросы Delphi | 4 | 19.06.2018 10:04 |
SOS!!! Макрос Excel на поиск и замену слов в таблице. | ukk-kz | Microsoft Office Excel | 2 | 27.05.2014 10:54 |
Excel, Как осуществить поиск и замену сразу нескольких фрагментов текста? | Танита | Помощь студентам | 0 | 24.05.2012 00:18 |
Поправить прогу... Поиск. | twister_answer | Помощь студентам | 0 | 06.12.2010 21:39 |
макрос на поиск и замену. Что не так? | Viento | Microsoft Office Excel | 6 | 11.02.2009 22:36 |