Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Аватара для madmasles

Ветеран


Сообщения: 812
Благодарности: 353

Профиль | Отправить PM | Цитировать


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

Последний раз редактировалось madmasles, 29-09-2011 в 15:13.

Это сообщение посчитали полезным следующие участники:

Отправлено: 14:07, 29-09-2011 | #10