|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » AutoIt » Поиск слова в txt затем поиск по маске "(383)" и вывод инфы |
|
|
Поиск слова в txt затем поиск по маске "(383)" и вывод инфы
|
Новый участник Сообщения: 6 |
Всем привет!
Помогите написать функцию Поиск слова в txt затем поиск по маске "(383)" и вывод инфы в GUI - Имя - номер телефона Есть текстовик с именами и номерами телефонов, если ищем имя то не всегда сразу , бывает после какого-то комментария имеется номер |
|
Отправлено: 14:59, 27-09-2011 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать rustoss,
Приведите образец текста, в котором искать надо и конкретный результат, который должен быть найден. |
Отправлено: 15:01, 27-09-2011 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать "Ирина Петровна Васильева - нянечка, Уральская 104 8(383)2-56-54-89 "
В окне ввожу фамилию, кнопка получить, и высвечивается Фамилия и номер телефона Gui как-то так |
Отправлено: 15:14, 27-09-2011 | #3 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать rustoss,
Попробуйте так: #include <GUIConstantsEx.au3> $sFile = @ScriptDir & '\TLF.txt' If Not FileExists($sFile) Then MsgBox(16, 'Error', 'No File') Exit EndIf $sText = FileRead($sFile) $aFIO = StringRegExp($sText, '([А-Яа-яЁё]+?\h[А-Яа-яЁё]+?\h[А-Яа-яЁё]+?)\h', 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, 100) 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, 34) GUISetState() $sFIO = '' While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $nCombo, $nGet $sSearch = GUICtrlRead($nCombo) If $sSearch Then $sNum = StringRegExpReplace($sText & @CRLF, '(?s).*?' & $sSearch & '.*?(\d\(\d{3}\).*?\d)\r?\n.*', '\1') If @extended = 1 Then GUICtrlSetData($nTLF, $sNum) EndIf EndIf EndSwitch WEnd |
Отправлено: 16:29, 27-09-2011 | #4 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Отлично!!!!!
Работает только с русским языком |
|
Отправлено: 17:00, 27-09-2011 | #5 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать |
Отправлено: 17:16, 27-09-2011 | #6 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать нету согласен, просто в контактах есть,
вот сейчас экспериментирую, но темный лес.... это $aFIO = StringRegExp($sText, '([A-Za-z]+?\h[A-Za-z]+?\h[A-Za-z]+?)\h', 3) ФИО переписал [A-Za-z] как совместить еще и русский? тут бы еще понять... $sNum = StringRegExpReplace($sText & @CRLF, '(?s).*?' & $sSearch & '.*?(\d\(\d{3}\).*?\d)\r?\n.*', '\1') (\d{3}\) - 3 цифры в скобках? если переписать все в формат 8(383)2-56-54-89 то находит есть еще номера 8-800 (383) 2 54-89-72 и по разному записаны попробую текстовик под один шаблон перебить. |
Отправлено: 17:39, 27-09-2011 | #7 |
Ветеран Сообщения: 812
|
Профиль | Отправить PM | Цитировать |
Отправлено: 19:11, 27-09-2011 | #8 |
Новый участник Сообщения: 6
|
Профиль | Отправить PM | Цитировать Jason
jason345@mail.ru телефон мобильный 8-909-***-**-** SBRF http://sbrf.ru 8-800-555-55-50 Василий дом (383) 254-56-89 Мария Степанова (495) 357-54-12 было бы не плохо если есть сайт у контакта то можно переход по клику, либо клик по мылу для письма |
Отправлено: 10:55, 28-09-2011 | #9 |
Ветеран Сообщения: 812
|
Профиль | Отправить 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 |
Последний раз редактировалось madmasles, 29-09-2011 в 15:13. Отправлено: 14:07, 29-09-2011 | #10 |
|
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Вместо "Мой компьютер" открывается "Поиск" и др. | ZoolooS | Лечение систем от вредоносных программ | 5 | 20-06-2008 14:11 | |
Разное - [решено] Вместо "Мой компьютер" или при двойном щелчке на папке открывается "Поиск" | ZoolooS | Microsoft Windows 2000/XP | 4 | 18-06-2008 16:34 | |
[решено] Закрытие опции "поиск комп. и людей" в start menu search | beidgik | Microsoft Windows NT/2000/2003 | 2 | 14-11-2006 10:37 | |
Поиск в яндекс.xml (выделено из "Зацените сайт!") | Vampire | Вебмастеру | 21 | 11-09-2006 20:31 | |
В папках вместо файлов отображается сообщение "Чтобы начать поиск..." | TempRegistrator | Microsoft Windows 2000/XP | 1 | 02-08-2006 08:39 |
|