Что нового

Как отследить совпадения в тексте, если искомые символы указаны построчно?

agikon

Знающий
Сообщения
789
Репутация
17
Подскажите пожалуйста, можно ли в тексте сразу искать несколько ( ну например два искомых слова) искомых символов, если искомые символы указаны построчно?
то есть искать "00" и "111" отдельно друг от друга, а не как "00 &@CRLF& 111"

Вот в данном примере скрипт должен обнаружить 00 и 111, бо они есть в исходном тексте.

Код:
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>

$hGUI = GUICreate('', 300, 150)
GuiCtrlCreateLabel("Исходный текст", 10, 5, 100, 15)
GuiCtrlCreateLabel("Искомый текст", 210, 5, 80, 15)
$nEdit1 = GUICtrlCreateEdit('22222222222222222222222222222222222220022222222222222222222222222222222222222222222111222222222', 10, 20, 190, 120, $ES_WANTRETURN)
$nEdit2 = GUICtrlCreateEdit('00' & @CRLF & '111', 210, 20, 80, 50, $ES_WANTRETURN)
$nButton1 = GUICtrlCreateButton('искать', 210, 70, 80, 20)
GUICtrlSetState(-1, $GUI_FOCUS)
GUISetState()

While 1
    Switch GUIGetMsg()
        Case $GUI_EVENT_CLOSE
            Exit
        Case $nButton1
            $sText = GUICtrlRead($nEdit2)
            ;If ;условие поиска
				;MsgBox(64, '', 'найдено 00' , 0, $hGUI)
				;MsgBox(64, '', 'найдено 11' , 0, $hGUI)
            ;Else
				;MsgBox(64, '', 'не найдено' , 0, $hGUI)
            ;EndIf
    EndSwitch
WEnd
 

CreatoR

Must AutoIt!
Команда форума
Администратор
Сообщения
8,671
Репутация
2,481
Код:
#include <GUIConstantsEx.au3>
#include <EditConstants.au3>

$hGUI = GUICreate('', 300, 150)
GUICtrlCreateLabel("Исходный текст", 10, 5, 100, 15)
GUICtrlCreateLabel("Искомый текст", 210, 5, 80, 15)
$nEdit1 = GUICtrlCreateEdit('22222222222222222222222222222222222220022222222222222222222222222222222222222222222111222222222', 10, 20, 190, 120, $ES_WANTRETURN)
$nEdit2 = GUICtrlCreateEdit('00' & @CRLF & '111', 210, 20, 80, 50, $ES_WANTRETURN)
$nButton1 = GUICtrlCreateButton('искать', 210, 70, 80, 20)
GUICtrlSetState(-1, $GUI_FOCUS)
GUISetState()

While 1
	Switch GUIGetMsg()
		Case $GUI_EVENT_CLOSE
			Exit
		Case $nButton1
			$sText = GUICtrlRead($nEdit1)
			$aSearch = StringSplit(StringStripCR(GUICtrlRead($nEdit2)), @LF)
			
			$iFound = 0
			
			For $i = 1 To $aSearch[0]
				$iPos = StringInStr($sText, $aSearch[$i])
				
				If $iPos Then
					MsgBox(64, 'Поиск', 'Найдено [' & $aSearch[$i] & '] в позиции №' & $iPos, 0, $hGUI)
					$iFound += 1
				EndIf
			Next
			
			If Not $iFound Then
				MsgBox(64, 'Поиск', 'Ничего не найдено', 0, $hGUI)
			EndIf
	EndSwitch
WEnd
 
Автор
A

agikon

Знающий
Сообщения
789
Репутация
17
CreatoR
Спасибо, прекрасно работает.
 
Верх