Что нового

Поиск-Замена текста в .txt

MadMax

Новичок
Сообщения
3
Репутация
0
Добрый день!
Не могу выполнить следующую задачу:
1. Есть файл test.txt
2. Ищем в нем строчку textOld1 меняем на textNew1
3. Ищем в нем строчку textOld2 меняем на textNew2
4. Сохраняем
Вот с пунктом 4 у меня затык. FileWrite("file","text") может добавить в конец файла строчку.А как сохранить сделанные изменения ничего не добавляя?
 

beve

Осваивающий
Сообщения
104
Репутация
30
MadMax [?]
А как сохранить сделанные изменения ничего не добавляя?
Перед FileWrite нужно открыть файл с помощью
Код:
FileOpen ( "filename" [, mode ] )
с параметром mode - 2 (Режим записи (перезаписать предыдущее содержание))
 
Автор
M

MadMax

Новичок
Сообщения
3
Репутация
0
Так не получается :(
Fileopen ('File',mode)-если ставим mode 2, то удаляется имеющееся содержание. А мне надо оставить.
textold="Маша сидела дома и ела кашу"
textnew="Глаша сидела дома и ела варенье"
Т.е. меняем "Маша" на "Глашу" + "кашу" на "варенье"
Поменять могу, а сохранить оба изменения нет :(
 

Yuri

AutoIT Гуру
Сообщения
737
Репутация
281
Например в директории скрипта файл test.txt
Содержание:
Вася пил чай
Маша сидела дома и ела кашу
Петя смотрел телевизор

Надо исправить 2-ю строку на Глаша сидела дома и ела варенье
Тогда коротко, без проверок:
Код:
#include <File.au3>
$File = @ScriptDir&"\test.txt"
_FileWriteToLine($File, 2, "Глаша сидела дома и ела варенье", 1)
 

dwerf

Использует ArchLinux
Сообщения
478
Репутация
218
Вроде как-то так:

Код:
$sPath = 'text.txt'
$sTextOld1 = 'Маша'
$sTextOld2 = 'каша'
$sTextNew1 = 'Глаша'
$sTextNew2 = 'Варенье'

$hFile = FileOpen($sPath, 0)
$sText = FileRead($hFile)
FileClose($hFile)

$sText = StringReplace($sText, $sTextOld1, $sTextNew1)
$sText = StringReplace($sText, $sTextOld2, $sTextNew2)

$hFile = FileOpen($sPath, 2)
$sText = FileWrite($hFile, $sText)
FileClose($hFile)
 
Автор
M

MadMax

Новичок
Сообщения
3
Репутация
0
Бинго! Работает! Спасибо большое! :smile:
 

Bingo888

Новичок
Сообщения
33
Репутация
0
Ребят а можно както выравнивать текст, шрифт прописовать?? Если длинное предложение?
 
Верх