Что нового

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

A

at

Гость
Версия AutoIt: 3.3.6.1

Описание: Добрый день, Уважаемое Сообщество. Прошу помочь разобраться в вопросе замены строки в текстовом файле. Нужно найти в текстовом файле строку: 10.10.1.20 и заменить ее на 10.10.1.30
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Можно так:
Код:
$File = @ScriptDir & '\user.txt'
$Read = FileRead($File)
$Replace = StringReplace($Read, '10.10.1.20', '10.10.1.30')
FileDelete($File)
FileWrite($File, $Replace)
 
Автор
A

at

Гость
Спасибо, работает. А через StringRegExpReplace можно еще пример показать ?
 

Zaramot

I ♥ AutoIt
Сообщения
1,160
Репутация
660
Код:
$File = @ScriptDir & '\user.txt'
$Read = FileRead($File)
$Replace = StringRegExpReplace($Read, '10.10.1.20', '10.10.1.30')
FileDelete($File)
FileWrite($File, $Replace)
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
at [?]
А через StringRegExpReplace
Попробуйте так.
Код:
$sNameSection = '"ServerAddress"'
$sReplace = '100.100.100.100'
$sText = FileRead(@ScriptDir & '\user.txt')

$sNewText = StringRegExpReplace($sText, '(?si)^(.*?' & $sNameSection & '>.*?<value>).*?(</value>.*?)$', '${1}' & $sReplace & '$2')
If @extended = 2 Then
	$hFile = FileOpen(@ScriptDir & '\1_user.txt', 2)
	FileWrite($hFile, $sNewText)
	FileClose($hFile)
Else
	MsgBox(16, 'Error', 'StringRegExpReplace')
EndIf
 
Автор
A

at

Гость
madmasles, спасибо за пример, начинаю понемногу доходить.
 

kristow13

Новичок
Сообщения
76
Репутация
0
Re: [Данные, строки] Поиск и замена строки в текстовом файле

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

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

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
Re: [Данные, строки] Поиск и замена строки в текстовом файле

kristow13,
Это Стол заказов и данная тема решена. Задавайте вопрос в другом месте.
 

Bingo888

Новичок
Сообщения
36
Репутация
0
Re: [Данные, строки] Поиск и замена строки в текстовом файле

Добрый день! у меня почемуто $sRead=FileRead($File) не считивает файл в чом может быть причина?
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Re: [Данные, строки] Поиск и замена строки в текстовом файле

Bingo888 [?]
в чом может быть причина?
Файл не найден.
Файл используется.
Файл пуст.
 

Bingo888

Новичок
Сообщения
36
Репутация
0
Re: [Данные, строки] Поиск и замена строки в текстовом файле

#include <File.au3>
#include <Array.au3>
$File = 'd:\\DOVIDKA.RTF'
$sTextOld1 ='ВІДДІЛЕННЯ'
$sTextOld2 ='ОБЛАСТІ'


if $File =-1 Then
MsgBox(4096, "Ошибка", "Невозможно открить файл.")
Exit
Endif

$sRead = FileRead($File)
$Repleace = StringReplace($sRead, $sTextOld1, $sTextOld2)
FileDelete($File)
FileWrite($File, $Repleace)


Вот есть проврка на то используется ли файл, и он не пустой создается файл пустой рядом с исходным!


Добавлено:
Сообщение автоматически объединено:

Что не так в скрипте?
 
Сообщения
142
Репутация
-3
Re: [Данные, строки] Поиск и замена строки в текстовом файле

Bingo888, указан неправильно путь, или потому что он RTF.
 

Bingo888

Новичок
Сообщения
36
Репутация
0
Re: [Данные, строки] Поиск и замена строки в текстовом файле

rtf тут точно не причём и путь указан правильно !!!!
 

JohnWind

Новичок
Сообщения
57
Репутация
0
возможно я не прав, но я НЕ вижу открытия файла.

типа такого:

$File = FileOpen("textFile.txt", 0)
 
Верх