_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)