$aText = StringSplit(StringStripCR(FileRead('test.txt')), @LF)
If $aText[0] Then
For $i = 1 To $aText[0]
If StringInStr($aText[$i], 'пожалуйста') Then
If StringInStr($aText[$i], 'сообщение') Then
$aMessage = StringRegExp($aText[$i], '"(.*?)"', 3)
If IsArray($aMessage) Then
MsgBox(64, 'Строка ' & $i, $aMessage[0])
EndIf
EndIf
Else
MsgBox(16, 'Строка ' & $i, 'А где волшебное слово?')
EndIf
Next
EndIf
Покажи сообщение с текстом "Пробный текст-1"
Покажи, пожалуйста, сообщение с текстом "Пробный текст-1"
$aText = StringSplit(StringStripCR(FileRead('test.txt')), @LF)
If $aText[0] Then
For $i = 1 To $aText[0]
Execute($aText[$i])
If @error Then
MsgBox(16, 'Error', 'Ошибка в строке ' & $i)
EndIf
Next
EndIf
MsgBox(0, "Test", "Hello World:)")
;$aText = StringSplit(StringStripCR(FileRead('test.txt')), @LF)
For $i = 1 To 10
$iIndex = Random(1, 5, 1)
;MsgBox(64, $i, $aText[$iIndex])
MsgBox(64, $i, FileReadLine('test.txt', $iIndex), 1)
Next
Один
Два
Три
Четыре
Пять
Тебе же показали как:А если в файле есть разные команды, то как заставить AutoIt их выполнить?
$aFuncs = StringSplit(StringStripCR(FileRead('test.txt')), @LF)
For $i = 1 To UBound($aFuncs)-1
Execute($aFuncs[$i])
Next
CreatoR сказал(а):MockeR [?]
Тебе же показали как:А если в файле есть разные команды, то как заставить AutoIt их выполнить?
Код:$aFuncs = StringSplit(StringStripCR(FileRead('test.txt')), @LF) For $i = 1 To UBound($aFuncs)-1 Execute($aFuncs[$i]) Next
MsgBox(0, "2", "msg1")
MsgBox(0, "2", "msg2")
For $q = 1 to 5
MsgBox(0, "Test", $q)
Next
Run(@AutoItExe & ' test.txt', @ScriptDir)
А зачем это?Это конечно работает, но только для команд которые содержатся только на одной строке.
А если там будет, например,...
просто нужно сделать программу которая будет выполнять все команд из заданого файла!!!madmasles сказал(а):MockeR [?]
А зачем это?Это конечно работает, но только для команд которые содержатся только на одной строке.
А если там будет, например,...
не работает :(aleratorio сказал(а):Код:Run(@AutoItExe & ' test.txt', @ScriptDir)
![]()
Тогда Вам надо четко определиться в каком виде эти команды будут в файле.просто нужно сделать программу которая будет выполнять все команд из заданого файла!!!
команды могут быть разные!!! начиная от ClipGet() и заканчивая _WordQuit()madmasles сказал(а):MockeR [?]
Тогда Вам надо четко определиться в каком виде эти команды будут в файле.просто нужно сделать программу которая будет выполнять все команд из заданого файла!!!
aleratorio сказал(а):Не знаю, у меня работает. test.txt находится в каталоге со скриптом.
Run(@AutoItExe & ' /AutoIt3ExecuteScript test.txt', @ScriptDir)
#include <File.au3>
$sReadIncl = _
'#NoTrayIcon' & @CRLF & _
'ConsoleWrite("Return from Line #" & @ScriptLineNumber & ": " & TestFunc("Test"))' & @CRLF & _
'ConsoleWrite("Return from Line #" & @ScriptLineNumber & ": " & MsgBox(36, "", "Are you sure?"))' & @CRLF & _
'Func TestFunc($sParam)' & @CRLF & _
' Return $sParam' & @CRLF & _
'EndFunc'
$sRet = _AutoIt3ExecuteCode($sReadIncl)
ConsoleWrite($sRet)
Func _AutoIt3ExecuteCode($sCode)
Local $sTmpFile = _TempFile(@TempDir, "~AutoIt3ExecuteCode_")
FileWrite($sTmpFile, $sCode)
Local $iPID = Run(@AutoItExe & ' /ErrorStdOut /AutoIt3ExecuteScript "' & $sTmpFile & '"', @WorkingDir, 0, 2)
Local $sStdOut_Read = "", $sStdOut_Ret = ""
While 1
$sStdOut_Read = StdoutRead($iPID)
If @error <> 0 Then
ExitLoop
EndIf
If $sStdOut_Read <> "" Then
$sStdOut_Ret &= $sStdOut_Read & @CRLF
EndIf
Sleep(10)
WEnd
FileDelete($sTmpFile)
Return $sStdOut_Ret
EndFunc
Ничего)) главное что проблема решена!!! ;Daleratorio сказал(а):Да не за что... Просто если бы вопрос (или название темы) были сформулированы как: "Запуск txt-файла, как au3-скрипта из другого скрипта" - думаю ответили бы сразу...