|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
05.07.2018, 10:54 | #11 |
Старожил
Регистрация: 17.11.2010
Сообщений: 18,922
|
Дело не в @. Посмотри как ведет себя PChar() от строки начинающейся с #0. Пофиг что дальше, будет получен адрес пустой строки. А StringReplace и использует PChar() в цепочке обращений.
add Pos и PosEx нормально обработают двоичный ноль в строке. Вот ими и пользуйся, забей на StringReplace
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 05.07.2018 в 11:30. |
05.07.2018, 14:00 | #12 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
в данном случае сработает такой код:
Код:
код, конечно, не красивый и не универсальный, но зато работает. |
06.07.2018, 02:06 | #13 |
ПШП
Участник клуба
Регистрация: 15.07.2013
Сообщений: 1,881
|
|
06.07.2018, 09:16 | #14 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
ТС, а зачем, собственно, понадобились такие действия над данными?
О каких объёмах файлов идёт речь? Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
06.07.2018, 20:09 | #15 |
Пользователь
Регистрация: 13.12.2009
Сообщений: 85
|
До одного мегабайта. Позвольте подниму свою же тему, и вернусь с уже новой проблемой того же поля.
Помогите поправить исправно работающий код. Он корректно ищет строку из 4 байт FindDataDIS и заменяет ее на строку из 4 байт ChangeDataDIS. Как мне поправить данный код, чтобы он заменял строку из 4 байт строкой из 47 байт? Код:
|
06.07.2018, 20:28 | #16 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Я это не из праздного любопытства спрашивал. Как думаешь, для чего?
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
06.07.2018, 22:59 | #17 |
Пользователь
Регистрация: 13.12.2009
Сообщений: 85
|
Я пытаюсь предположить, но не уверен что есть какой либо вменяемый ответ на это, ввиду страшной безграмотности.
В среднем редактируемый файл 100-300кб. А то и меньше 100 даже. |
06.07.2018, 23:02 | #18 |
Цифровой кот
Старожил
Регистрация: 29.08.2014
Сообщений: 7,629
|
Давай, говори уже, не ссы, тут все свои! А то я скоро спать сваливаю. Сожрал таблетку снотворного размером с хоккейную шайбу.
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
|
06.07.2018, 23:08 | #19 |
Пользователь
Регистрация: 13.12.2009
Сообщений: 85
|
Вероятно, размер файла влияет на скорость работы с ним)
|
06.07.2018, 23:19 | #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 |