Что нового

Поиск и замена текста с участием InputBox

zbz

Новичок
Сообщения
74
Репутация
1
Версия AutoIt: 3.3.14.2

Нужен скрипт для: Найти текст "Login" в тхт файле и заменит его на текст из InputBox.
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Пробуйте так :
Код:
#include <GUIConstantsEx.au3>

$hGui = GUICreate("Заменить текст", 380, 80)
$Input1 = GUICtrlCreateInput('', 10, 5, 360, 20)
$BtnOk = GUICtrlCreateButton("OK", 100, 40, 70, 26)

GUISetState()

While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case $GUI_EVENT_CLOSE
			ExitLoop
		Case $BtnOk
			$sFile = FileOpenDialog('Укажите текстовый файл для поиска и замены строки', @ScriptDir, 'Текстовый файл (*.txt)', 1 + 2)
			If Not @error Then
				$sData = FileRead($sFile)
				$sText = GUICtrlRead($Input1)
				$sData = StringReplace($sData, 'Login', $sText)
				$hFile = FileOpen($sFile, 2)
				FileWrite($hFile, $sData)
				FileClose($hFile)
				If Not @error then MsgBox(0, 'Результат', 'Замена выполнена !')
			EndIf			
	EndSwitch
WEnd
 
Автор
zbz

zbz

Новичок
Сообщения
74
Репутация
1
То что нужно, но есть один нюанс, файл для замены должен был указан в скрипте (типа C:\test.txt, без FileOpenDialog)
 

ra4o

AutoIT Гуру
Сообщения
1,165
Репутация
246
Тогда так :
Код:
#include <GUIConstantsEx.au3>
Global $sFile = 'C:\test.txt'

$hGui = GUICreate("Заменить текст", 380, 80)
$Input1 = GUICtrlCreateInput('', 10, 5, 360, 20)
$BtnOk = GUICtrlCreateButton("OK", 100, 40, 70, 26)

GUISetState()

While 1
	$msg = GUIGetMsg()
	Switch $msg
		Case $GUI_EVENT_CLOSE
			ExitLoop
		Case $BtnOk			
			$sData = FileRead($sFile)
			$sText = GUICtrlRead($Input1)
			$sData = StringReplace($sData, 'Login', $sText)
			$hFile = FileOpen($sFile, 2)
			FileWrite($hFile, $sData)
			FileClose($hFile)
			If Not @error Then MsgBox(0, 'Результат', 'Замена выполнена !')

	EndSwitch
WEnd
 
Верх