Вверх ↑
Ответов: 4621
Рейтинг: 746
#1: 2014-01-10 12:36:59 ЛС | профиль | цитата
С поиском в потоке и получением позиции может помочь модифицированный DataToFile.
1) Если длина заменяемого текста равна длине искомого - прямо пишем там же в поток
2) Если длина отличается, самый простой вариант:
- составить список позиций найденного текста в потоке
- создать новый файл
- записать в него данные из старого файла от начала до позиции №1
- записать в него заменяющий текст
- записать текст из старого файла с позиции (№1+длина искомого текста) до позиции №2
- повторять предыдущие два пункта до конца старого файла

Теоретически замену можно писать в тот же файл, но алгоритм значительно сложнее (предварительное сохранение в память фрагмента, который может быть перекрыт заменяемым текстом и т.п.)
карма: 26

0