Потребовалось сделать такой поиск с заменой, но не нашел на форуме ничего похожего.
Если я правильно понимаю делается примерно так:
Если можно как-то более элегантно, подскажите
Если я правильно понимаю делается примерно так:
Код:
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
$Form1 = GUICreate("Form1", 178, 330, 251, 188)
$Where = GUICtrlCreateInput("АБ1234567890", 16, 32, 145, 21)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Label_Input_Find = GUICtrlCreateLabel("Где", 16, 8, 22, 17)
$Input_Find = GUICtrlCreateInput("АБ??", 16, 88, 145, 21)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Что", 16, 64, 23, 17)
$Result = GUICtrlCreateInput("", 16, 288, 145, 21)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Label_Result = GUICtrlCreateLabel("Результат", 16, 264, 56, 17)
$Button1 = GUICtrlCreateButton("Научный тык", 16, 200, 145, 33)
$Input_Replace = GUICtrlCreateInput("пустота", 16, 144, 145, 21)
GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif")
$Label_Input_Replace = GUICtrlCreateLabel("Чем", 16, 120, 26, 17)
GUISetState(@SW_SHOW)
Global $Data
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button1
$Data = GUICtrlRead($Where)
SearchReplace()
GUICtrlSetData($Result, $Data)
EndSwitch
WEnd
Func SearchReplace()
Local $SearchStr = GUICtrlRead($Input_Find)
Local $ReplaceStr = GUICtrlRead($Input_Replace)
If $SearchStr = "" Then
Return
Else
$SearchStrRegExp = StringReplace($SearchStr, "?", ".")
$SearchStrRegExp = StringReplace($SearchStrRegExp, "*", ".+")
$Data = StringRegExpReplace($Data, $SearchStrRegExp, $ReplaceStr)
EndIf
EndFunc ;==>SearchReplace
Если можно как-то более элегантно, подскажите