Что нового

Как назначить переменной строку из GUICtrlCreateInput ?

A

at

Гость
Всех, Приветствую ! Прошу помочь. Не могу назначить переменной строковое значение GUICtrlCreateInput.

Делаю так :
Код:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$hForm = GUICreate('Form', 152, 65, 225, 150)
$vInput_1 = GUICtrlCreateInput('', 32, 8, 105, 21)
GUISetState(@SW_SHOW)

Global $vScript_Name, $sFile, $sRead

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
		EndSwitch

            $sFile = @ScriptDir & '\prog.log'
			$sRead = FileRead($sFile)
			$vScript_Name = String(GUICtrlRead($vInput_1))
			
			$sString_A = StringRegExp($sRead, '(?m)^(.*?\[.*?INFO.*?Script:\(Script:' & $vScript_Name & '\).*?Класс.*?на старте.*)$')
			$sText_A = '(?m)^(.*?\[.*?INFO.*?Script:\(Script:' & $vScript_Name & '\).*?Класс.*?на старте.*)$'
			$sReplace_Text_A = @HOUR & ':' & @MIN & ':' & @SEC & '.' & '<<< ИЗМЕНЕНО >>>  Информация о классе изменена успешно !' & @CRLF

		 If $sString_A Then

			 Sleep(100)
			$sReplace_A = StringRegExpReplace($sRead, $sText_A, $sReplace_Text_A)
			FileDelete($sFile)
			FileWrite($sFile, $sReplace_A)
			 Func_A()

		 EndIf
WEnd

Func Func_A()
		Sleep(10)
		MsgBox(0, "Успех !", "", 1)
EndFunc
 
Автор
A

at

Гость
То, как я понял справку, к сожалению, не работает. Потому и прошу показать, в чем ошибка в моем скрипте.

Пробовал так :$vScript_Name = String(GUICtrlRead($vInput_1))

и так: $vScript_Name = GUICtrlRead($vInput_1)
 

Garrett

Модератор
Локальный модератор
Сообщения
3,999
Репутация
967
at [?]
к сожалению, не работает.
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>

$Form1 = GUICreate(@ScriptName, 258, 53, 192, 114)
$Input1 = GUICtrlCreateInput("Всё же она работает!!!", 18, 14, 121, 21)
$Button1 = GUICtrlCreateButton("читать", 162, 12, 75, 25, 0)
GUISetState(@SW_SHOW)

While 1
	$nMsg = GUIGetMsg()
	Switch $nMsg
		Case $GUI_EVENT_CLOSE
			Exit
		Case $Button1
			$sText = GUICtrlRead($Input1)
			MsgBox(0, @ScriptName, $sText)
	EndSwitch
WEnd



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

Попробуйте так
Код:
#include <Misc.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Global $sFile = @ScriptDir & '\prog.log'

$hForm = GUICreate('Form', 152, 65, 225, 150)
$vInput_1 = GUICtrlCreateInput('', 32, 8, 105, 21)
GUISetState(@SW_SHOW)

Global $vScript_Name, $sFile, $sRead

While 1
    $nMsg = GUIGetMsg()
    Switch $nMsg
        Case $GUI_EVENT_CLOSE
            Exit
	EndSwitch
	If _IsPressed('0D') Then ; If {ENTER}
		$vScript_Name = GUICtrlRead($vInput_1)
		_ReadLog($vScript_Name)
	EndIf
WEnd

Func _Func_A()
	Sleep(10)
	MsgBox(0, "Успех !", "", 1)
EndFunc

Func _ReadLog($vScript_Name)
	
	$hFile = FileOpen($sFile, 2)
	$sRead = FileRead($sFile)
	$sString_A = StringRegExp($sRead, '(?m)^(.*?\[.*?INFO.*?Script:\(Script:' & $vScript_Name & '\).*?Класс.*?на старте.*)$')
	$sText_A = '(?m)^(.*?\[.*?INFO.*?Script:\(Script:' & $vScript_Name & '\).*?Класс.*?на старте.*)$'
	$sReplace_Text_A = @HOUR & ':' & @MIN & ':' & @SEC & '.' & '<<< ИЗМЕНЕНО >>>  Информация о классе изменена успешно !' & @CRLF

	If $sString_A Then
		$sReplace_A = StringRegExpReplace($sRead, $sText_A, $sReplace_Text_A)
		FileWrite($hFile, $sReplace_A)
		_Func_A()
	Else
		FileWrite($hFile, $sRead)
	EndIf

	FileClose($hFile)
EndFunc
 
Автор
A

at

Гость
Не пойму, что было. Сейчас прекрасно работает: $vScript_Name = GUICtrlRead($vInput_1). Спасибо за помощь.
 
Верх