С поиском в потоке и получением позиции может помочь модифицированный DataToFile.
1) Если длина заменяемого текста равна длине искомого - прямо пишем там же в поток
2) Если длина отличается, самый простой вариант:
- составить список позиций найденного текста в потоке
- создать новый файл
- записать в него данные из старого файла от начала до позиции №1
- записать в него заменяющий текст
- записать текст из старого файла с позиции (№1+длина искомого текста) до позиции №2
- повторять предыдущие два пункта до конца старого файла
Теоретически замену можно писать в тот же файл, но алгоритм значительно сложнее (предварительное сохранение в память фрагмента, который может быть перекрыт заменяемым текстом и т.п.)
Ответов: 4630
Рейтинг: 749
|
|||
карма: 26 |
|