Функция _ReplaceStringInFile

 ↑  ←  Описание функции


_ReplaceStringInFile

Заменяет строку другой строкой в указанном текстовом файле (с бинарным не работает)

#include <File.au3>
_ReplaceStringInFile($szFileName, $szSearchString, $szReplaceString [, $fCaseness = 0 [, $fOccurance = 1]])

Параметры

$szFileName Имя файла. Внимание! Нужен ПОЛНЫЙ путь, а не просто имя файла возвращённое к примеру функцией FileFindNextFile
$szSearchString Строка, которую нужно заменить
$szReplaceString Строка замены
$fCaseness [необязательный]
    0 = (по умолчанию) Не учитывает регистр букв,
    1 = Учитывает регистр букв
$fOccurance [необязательный]
    0 = Заменяет первый найденный,
    1 = (по умолчанию) Заменяет все

Возвращаемое значение

Успех:Возвращает количество выполненных замен
Ошибка:Возвращает -1 и устанавливает @error
@error:1 - Невозможно открыть файл
2 - Невозможно открыть temp-файл
3 - Невозможно записать в temp-файл
4 - Невозможно удалить оригинальный файл
5 - Невозможно переименовать / переместить temp-файл
6 - Установлен атрибут "Только чтение".

Пример

#include <File.au3>

$find = "ДО ЗАМЕНЫ"
$replace = "УЖЕ ПОСЛЕ"

$filename = "C:\_ReplaceStringInFile.test"

$msg = "Привет тест " & $find & " Привет тест" & @CRLF & _
"Привет тест" & @CRLF & @CRLF & $find

FileWrite($filename, $msg)

MsgBox(4096, "До замены", $msg)

$retval = _ReplaceStringInFile($filename, $find, $replace)
If $retval = -1 Then
    MsgBox(4096, "Ошибка", "Текст не был заменён в файле: " & $filename & ", Ошибка = " & @error)
    Exit
Else
    MsgBox(4096, "Информация", "Выполнено " & $retval & " замен образца: " & $find & " в файле: " & $filename)
EndIf

$msg = FileRead($filename, 1000)
MsgBox(4096, "После замены", $msg)
FileDelete($filename)