Что нового

[Данные, строки] Замена строки не в текстовом файле

kristow13

Новичок
Сообщения
76
Репутация
0
Я хочу в файле не txt формата заменить кусок текста.
Если я открываю этот файл блокнотом, то все содержимое видно в виде текста без кракозябр.
Вручную я делал замену через notepad++.
Хочу сделать перезапись текста в файле через autoit.
Пробовал код из этой темы, так у меня первый раз сработала замена текста, а потом перестает это делать.... Хотя тренировался с простым txt файлом, проблем вообще нету...

Вопрос: Возможно ли делать замену в файле без удаления и по новой сохранения этого измененного файла? :scratch:
Файл имеет расширение fr3.

Код:
$File = '123.fr3'
$Read = FileRead($File)
$Replace =  StringReplace($Read, '10.10.10.10', '11.11.11.11')
FileDelete($File)
FileWrite($File, $Replace)


P.S. Скрипт все делает правильно, но вот при пересохранении файла, меняется кодировка файла!!!
Подскажите как и где прописать кодировку файла при такой манипуляции?

У меня изначально кодировка файла ANSI as UTF-8, а после выполнения замены в файле кодировка ANSI. И мой файл из-за этого не работает...
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
kristow13,
Попробуйте перед чтением открывать файл в соответствующей кодировке. Вам понадобятся следующие функции:
Код:
FileGetEncoding()
FileOpen()
FileClose()
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
Не устаю поражаться!!! :smile:

kristow13
1. Я, к примеру, не знал кому принадлежит расширение fr3. Google нашёл. ;) Однако, вы сами должны были предоставить такую информацию в этой теме.
2. Вы смотрели ваш "txt" файл в блокноте? Это чистой воды XML. Напрашивается вопрос, чем вам не угодил компонент MSXML2.XMLHTTP, который специально создан для работы с XML?

kristow13 [?]
У меня изначально кодировка файла ANSI as UTF-8, а после выполнения замены в файле кодировка ANSI.
Это по причине №2, потому как для каждого формата уже давно придуманы свои анализаторы!!!
Скажу более, что касаемо вашего случая, то существует компонент FastReport3.dll. Эта dll имеет в своём арсенале готовые методы и свойства для работы именно с fr3 (Fast Report) файлами (в формате XML).
 
Автор
kristow13

kristow13

Новичок
Сообщения
76
Репутация
0
Раз речь зашла о fastreport.dll и вы вкурсе как ей работать, то подскажите как строку подключения к базе писать не в шаблоне а в скрипте autoit. Информации по работе с данной dll не нашел, кроме как сделать готовый отчет, все в шаблоне прописать и лишь скриптом его вызывать... Поэтому и подумал вариант перезаписи нужного элемента через скрипт.
С объектами dll работаю впервые, поэтому и ищу варианты решения своей задачи, используя найденную информацию...
 
Верх