rustoss,
Попробуйте так:
Код:
#include <GUIConstantsEx.au3>
Opt('TrayMenuMode', 1)
If WinExists(@ScriptName & '{[/@$@\]}') Then Exit
AutoItWinSetTitle(@ScriptName & '{[/@$@\]}')
$sFile = @ScriptDir & '\TLF.txt'
If Not FileExists($sFile) Then
MsgBox(16, 'Error', 'No File')
Exit
EndIf
$sText = FileRead($sFile)
$aFIO = StringRegExp($sText, '([А-ЯЁA-Z].*?)\h[^А-ЯЁA-Z]', 3)
If @error Then
MsgBox(16, 'Error', 'StringRegExp')
Exit
EndIf
$sFIO = ''
For $i = 0 To UBound($aFIO) - 1
$sFIO &= $aFIO[$i] & '|'
Next
$aFIO = 0
GUICreate('Смотрим Номер телефона', 420, 110)
GUICtrlCreateLabel('Выберите имя', 10, 10, 186, 17)
$nCombo = GUICtrlCreateCombo('', 10, 27, 400, 21)
GUICtrlSetData(-1, $sFIO)
$nGet = GUICtrlCreateButton('Получить', 340, 55, 70, 23)
$nTLF = GUICtrlCreateLabel('', 10, 60, 320, 20)
$nLink = GUICtrlCreateLabel('', 10, 80, 320, 20)
GUICtrlSetFont(-1, 10, 800, 6, "Arial")
GUICtrlSetColor(-1, 0x0000FF)
GUISetState()
$sFIO = ''
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $nCombo, $nGet
$sSearch = GUICtrlRead($nCombo)
If $sSearch Then
$sTLF = StringRegExpReplace($sText & @CRLF, '(?s).*?' & $sSearch & '.*?[а-яёa-z]?\h+(\(?\d.*?)\r?\n.*', '\1')
If @extended = 1 Then
GUICtrlSetData($nTLF, StringStripWS($sTLF, 8))
EndIf
EndIf
If StringRegExp($sText, $sSearch & '.*?http://.*?\r?\n') Then
$sLink = StringRegExpReplace($sText, '(?s).*?' & $sSearch & '.*?(http://.*?)\h.*', '$1')
If @extended = 1 Then
GUICtrlSetData($nLink, $sLink)
GUICtrlSetCursor($nLink, 0)
EndIf
Else
GUICtrlSetData($nLink, '')
GUICtrlSetCursor($nLink, -1)
EndIf
$sLink = ''
$sTLF = ''
$sSearch = ''
Case $nLink
$sLink = GUICtrlRead($nLink)
If $sLink Then
ShellExecute($sLink)
EndIf
$sLink = ''
EndSwitch
WEnd
Проверял с файлом типа:
Код:
Jason jason345@mail.ru телефон мобильный 8-909-111-11-11
SBRF http://sbrf.ru 8-800-555-55-50
Василий дом (383) 254-56-89
Мария Степанова 8(495) 357-54-12