Перейти из форума на сайт.


Система IP-видеонаблюдения "Линия". Скачать бесплатную демо-версию для 16 камер. НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)

Модерирует : gyra, Maz

Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

Открыть новую тему    

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

AutoIt3
(Часть 1)

 
 
Домашняя страница: http://www.autoitscript.com
Страница загрузки: http://www.autoitscript.com/autoit3/downloads.php
 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя эмуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши, управление окнами и их визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 
Помощь по AutoIT:
  • Справку на русском (и не только) вы всегда(?) сможете найти тут
  • Учебник по AutoIt для начинающих
  • Видео-руководства на YouTube (англ.)
  • AutoIt v3: Your Quick Guide (652 КБ) - Ваш быстрый гид в мир AutoIt-а (книга в формате pdf) - Та же книжка online.
  • Справочник по командам rundll32
  • Справка WinAPI (Win 32 API по шагам)
  • Русский справочник по API-функциям
  • Полезная информация по WinAPI на русском
  • Помощь по регулярным выражениям
  • Tutorial on DllCall() & DllStructs - Небольшое (пока?) руководство по использованию функции DllCall*()
     
     
    Ресурсы, посвящённые AutoIt
  • AutoIt в Википедии
  • AutoIt Russian Community - Русское сообщество AutoIt
  • Jabber-конференция для обсуждения мелких вопросов касающихся AutoIt
  • Обзор скриптового языка AutoIt (рус.)
  • AutoIt на Yahoo! Groups
  • Раздел в конфиренции OSzone.net, посвящённый AutoIt
  • Пополняющийся со временем сайт с полезными утилитами и функциями на AutoIt
  • Коллекция AutoIt-скриптов от Sanja Alone
  • Коллекция AutoIt-скриптов от MSFN (могут быть устаревшие).
  • Коллекция AutoIt-скриптов от AZJIO
     
     
    !!! Полезные советы и заметки - новичкам и не только
     
     
  • Рекомендации по написанию скриптов
     
     
    Инструменты для AutoIt:
  • AutoIt Path Switcher - Переключение пути к папке AutoIt.
  • AutoIt3Wrapper [Страница закачки] - Программа для компиляции скрипта с дополнительными возможностями (добавление значка, описания и т.п).
  • Koda (724 Kb) - Визуализация работы с GUI - аналог Visual Basic.
  • CodeWizard (400 Kb) - нечто простенькое на вариант Koda.
  • AutoItMacroGenerator (34 Kb) - Записывает в реальном времени действия пользователя в AutoIt-код.
  • ScriptWriter (78 Kb) - Аналог AutoItMacroGenerator.
  • API Constants (1042 Kb) - Утилита для просмотра всех констант API-функции и не только.
  • Страница закачки утилит, которые идут в отдельной поставке редактора SciTE.
  • AutoIt-меню для браузера Opera.
     
    Готовые скрипты и программы с открытым кодом на AutoIt:
  • Desktop Icons Restorator - Скрипт-программа для сохранения/восстановления позиции значков рабочего стола.
  • CaptureIt - Утилита для захвата изображений с экрана.
  • SwitchIt - Скрипт для конвертирования выделенного текста.
  • Скрипт раскраски кода AutoIt для публикации в форумах
     
    Общие вопросы и решения на Autoit:
  • Обработчик скриптов добавляющий отладчик (debugger) - Последняя версия: AutoItScript Add Debugger
  • Интеракция между несколькими скриптами
  • Пример использование интеракции между скриптами - Добавление элементов GUI с внешнего модуля
  • Чтение и запись данных с/в окна/о SciTE
  • Пример автообновления версии своего приложения
  • Копирование большого файла с отображением данных прогресса
  • Создание динамического меню в Tray Icon (значок в области уведомлений)
  • Пример создания своего мастера (Wizard)
  • Метод, позволяющий запускать код VBS без создания временных файлов
  • Описание функции GUIRegisterMsg()
  • Пример перехвата вводимых символов с клавиатуры
  • Пример деактивирования TabItem
  • Пример вывода лога в Edit-поле (с поддержкой форматирования текста)
  • Пример остановки/начало выполнения скрипта + Слежение за буфером обмена с заменой неподдерживаемых в имени файла символов
  • Подключение приложения (GUI) к буферу обмена
  • Пример использования меню с значками (ModernMenu.au3) -> Список программ в меню значка в системном трее
  • Пример подсчёта интервала времени между нажатиями клавиш
  • Слежение нажатых элементов в текущем окне (под курсором)
  • Написание instant messaging Бота на AutoIt
  • Способ, позволяющий посылать нажатие клавиши в неактивное окно (не путать со свёрнутым)
  • Сервер <=> Клиент - Пример передачи файла
  • Пример отображения только элементов GUI (без самой оболочки)
  • Модуль, превращающий ваше приложение в Trial-версию
  • Слежение за выделенным текстом и с последующим его помещением в файл
     
    Отдельные функции и библиотеки (UDF):
  • Функции, относящиеся к интернету
  • Функции для работы с процессами и окнами
  • Функции для работы с файлами
  • Функции для GUI/Tray
  • Системные функции
  • Разное (то, что не подпадает под другие категории)
     


     
    За шапкой следит ViSiToR  

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 14:47 12-01-2009 | Исправлено: Maz, 11:50 17-04-2017
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Может и работает но я его не смог привязать, вчера отписывал, а потом исправил сообщение. Переменная $sResult всегда выдавала 1, а если считать что это массив , проверил $sResult[1], то выдаёт ошибку. Хотелось вчера доделать поэтому прибегнул к тому что сам понимаю. Справку по регулярным выражением смотрел, вроде всё правильно, но не мог добится результатов, чтоб переменная $sResult была равна 'remark' или 'Boot', по условию это было в тексте.
    вместо $sData = ClipGet() я применял FileOpen, и для меня была загадка, может он его не так открывает, там режимы 1-16. Вывод смотрел в мессаге.

    Всего записей: 3486 | Зарегистр. 03-05-2006 | Отправлено: 23:31 30-10-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 23:31 30-10-2009
    Цитата:
    вместо $sData = ClipGet() я применял FileOpen, и для меня была загадка, может он его не так открывает, там режимы 1-16. Вывод смотрел в мессаге

    FileOpen возвращает указатель на открытый файл, а не его содержимое, если нужно считать файл, тогда так:
     

    Код:
    $sData = FileRead("file.txt")


    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 00:14 31-10-2009
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Переделал, теперь работает.

    Код:
    ; Вытаскиваем метку WIM-файла
    RunWait (@Comspec&' /C '&@ScriptDir&'\tools\imagex.exe /info "'&$inputwim0&'">"'&$inputtmp0&'\tmp\wim_info.txt"','',@SW_HIDE )
    $filelabel = FileOpen($inputtmp0&'\tmp\wim_info.txt', 0)
    ; проверка открытия файла для записи строки
    If $filelabel = -1 Then
      MsgBox(0, "Ошибка", "Не возможно открыть файл.")
      Exit
    EndIf

    $labelwim0 = StringRegExpReplace(FileRead($filelabel), "(?s).*<NAME>(.*)</NAME>.*", "\1")
    ; конец - Вытаскиваем метку WIM-файла

     
    У меня в скрипте выполняется замена строк в файлах реестра, но с перебором каждой строки, а строки в массиве. Нельзя ли эти операции также упростить регулярным выражением, открыв предварительно файл командами FileOpen и FileRead? Но самое интересное, что не найду команды сохранения, есть только "Открыть диалог сохранения", да и команда FileOpen разрешает либо для чтения либо для записи...

    Всего записей: 3486 | Зарегистр. 03-05-2006 | Отправлено: 15:52 31-10-2009
    NIKZZZZ



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO

    Цитата:
    У меня в скрипте выполняется замена строк в файлах реестра, но с перебором каждой строки, а строки в массиве.

    А зачем тебе массив? Читаешь весь файл в переменную, и ее модифицируешь.

    Цитата:
    Но самое интересное, что не найду команды сохранения, есть только "Открыть диалог сохранения", да и команда FileOpen разрешает либо для чтения либо для записи...

    ?????
     
     

    Всего записей: 4579 | Зарегистр. 08-02-2006 | Отправлено: 16:06 31-10-2009
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Модифицировал, а дальше, закрыть файл и всё сохранится? или использовать FileWrite, как одна строка с символами перехода на новую строку?
    Уже сделал с распознованием файлов REGEDIT4 и "Windows Registry Editor Version 5.00" чтоб создавать два рег-файла.

    Всего записей: 3486 | Зарегистр. 03-05-2006 | Отправлено: 18:13 31-10-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 18:13 31-10-2009
    Цитата:
    закрыть файл и всё сохранится? или использовать FileWrite, как одна строка с символами перехода на новую строку?

    Да. Покажи ту часть где происходит запись в файл.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 18:23 31-10-2009
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    С сохранением обработанных рег файлов всё получилось, поменял местами FileReadLine и FileRead.
    Теперь нашёл такой глюк, непонятно чем вызванный: не все файлы реестра монтируются. Методом эксперимента выяснил, что если удалить строку извлечения wim-файла, то все файлы реестра монтируются стабильно. Попробовал сделать рандом при создании каталога с файлами реестра, не помогло.

    Всего записей: 3486 | Зарегистр. 03-05-2006 | Отправлено: 20:40 31-10-2009 | Исправлено: AZJIO, 23:23 31-10-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 20:40 31-10-2009
    Цитата:
    Вот

    Зачем так сложно? и для чего «FileFindNextFirst», нативными средствами разве нельзя это сделать?
     

    Цитата:
    после чтения первой строки она как будто пропадает

    Она не пропадает, она уже прочитана через FileReadLine. Нужно либо закрыть файл и читать напрямую, либо изначально читать всё и получать первую строку...
     

    Код:
     
        If StringRight($tempname, 3)  = "reg" Then
            ; Открывается reg-файл для замены строк
            $sFileRead = FileRead($tempname)
            $regline = StringLeft($sFileRead, StringInStr($sFileRead, @CRLF)-1)
            If $regline = 'REGEDIT4' Then
              $SR1 = StringReplace($sFileRead, "HKEY_CURRENT_USER", "HKEY_LOCAL_MACHINE\PE_CU_DF")
              $SR1 = StringReplace($SR1, "HKEY_LOCAL_MACHINE\SOFTWARE", "HKEY_LOCAL_MACHINE\PE_LM_SW")
              $SR1 = StringReplace($SR1, "HKEY_LOCAL_MACHINE\SYSTEM", "HKEY_LOCAL_MACHINE\PE_SY_HI")
              $SR1 = StringReplace($SR1, "CurrentControlSet", "ControlSet001")
              $SR1 = StringReplace($SR1, "HKEY_CLASSES_ROOT", "HKEY_LOCAL_MACHINE\PE_LM_SW\Classes")
              $SR1 = StringReplace($SR1, "REGEDIT4", '# '& StringRegExpReplace($tempname, "^.*\\", ""))
              FileWrite($filereg, $SR1&@CRLF&@CRLF)
            EndIf
        EndIf


    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:23 31-10-2009 | Исправлено: ViSiToR, 23:27 31-10-2009
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Как составить регулярное выражение для удаления строк в reg-файле [HKEY_USERS......] и до следующей строчки с квадратной скобкой [
    Вот попробовал, но не уверен:
    $SR1 = StringRegExpReplace($SR1, "(?s).*([HKEY_USERS(?s).*)[.*", "")
     
    Добавлено:
    ViSiToR

    Цитата:
    Зачем так сложно? и для чего «FileFindNextFirst», нативными средствами разве нельзя это сделать?  
    FileFindNextFirst - это использование функции NIKZZZZ для поиска всех файлов в каталоге и подкаталогах, они поочереди перечитываются и сохраняются в общий файл. В примере обрабатывались рег-файлы с заголовком REGEDIT4, и такой же кусок скрипта для рег-файлов с заголовком 'Windows Registry Editor Version 5.00'. Универсальность в том что любые рег-файлы в каталоге и подкаталогах обрабатываются в два выходных файла с разными заголовками, и далее они применяются в подключенные файлы гостевого реестра.
    Сейчас пришлось строки монтирования вынести в батник, а в скрипте вызов батника, так стабильно работает.

    Всего записей: 3486 | Зарегистр. 03-05-2006 | Отправлено: 00:48 01-11-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 00:48 01-11-2009
    Цитата:
    Вот попробовал, но не уверен

    Квадратная скобка это служебный символ в RegExp, его нужно "отменять":

    Код:
    $SR1 = StringRegExpReplace($SR1, "(?s).*\[HKEY_USERS.*\[.*", "")

     

    Цитата:
    В примере обрабатывались рег-файлы

    Так быстрее будет получать только их: FileFindFirstFile($sPath & "\*.reg")

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 01:08 01-11-2009
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR

    Цитата:
    $SR1 = StringRegExpReplace($SR1, "(?s).*\[HKEY_USERS.*\[.*", "")  

    рег-файл с этой строкой как бы совсем не обработался, то есть в выходном рег-файле ни заголовка о имени файла ни его данных, остальные, без этой строки отработали.
     

    Цитата:
    Так быстрее будет получать только их: FileFindFirstFile($sPath & "\*.reg")
    А куда её вставлять? В функцию? Я там пытался заменить последние строки указав расширение вместо звёздочек:
    $Stack[$Stack[0]] = FileFindFirstFile($Stack1[$Stack[0]] & "\*.*")
    так у меня ничего не работало.

    Всего записей: 3486 | Зарегистр. 03-05-2006 | Отправлено: 01:39 01-11-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 01:39 01-11-2009
    Цитата:
    рег-файл с этой строкой как бы совсем не обработался

    А так:

    Код:
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_CLASSES.*?(\[)", "\1")

    ?
     

    Цитата:
    А куда её вставлять?

    Вместо FileFindNextFirst. Залей отдельно текущий скрипт, я попробую поправить уже в нём.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 04:01 01-11-2009
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR

    Цитата:
    А так:  
     
    Код:$SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_CLASSES.*?(\[)", "\1")  

    Неа, не работает. То есть [HKEY_USERS не удаляется. И как то странно, в одном файле всё удалилось от начала до искомого текста, в другом от искомого текста до конца.
    Я вчера изменил так
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_USERS.*\[.*", "")  
    у меня хотя бы то что выше искомого текста не удалилось, а искомый текст и всё что ниже него удалилось, добится чтобы не удалялось после искомого текста не получилось.
     
    Вот подготовил для теста, тут же и оригинал.
     
    Вот так вроде работает

    Код:
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_USERS.*\[(?s)", "[")

     
    вот это строка первоначально почти была готова, не понимал, как сделать чтоб не удалялась квадратная скобка, оказалось просто заменить на неё.

    Код:
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_USERS.*\[(?s)", "")

    Всего записей: 3486 | Зарегистр. 03-05-2006 | Отправлено: 08:46 01-11-2009 | Исправлено: AZJIO, 09:32 01-11-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 07:46 01-11-2009
    Цитата:
    Неа, не работает

    Я там случайно оставил «HKEY_CLASSES», вместо «HKEY_USERS»
     

    Цитата:
    Вот так вроде работает

    А зачем (?s) в конце? посмотри в справке (к StringRegExp) для чего оно нужно
     

    Цитата:
    Вот подготовил для теста

    Позже гляну.
     
    Добавлено:
    08:42 01-11-2009
    Цитата:
    Позже гляну

    Вобщем вот немного(?) поправил скрипт, вместо FileFindNextFirst используется функция чтения списка файлов в массив, с последующим его перебором, возможно немного будет медленнее, но оно мне кажется более корректно в использований.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 09:42 01-11-2009
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Теперь сделал сложный тест с рег-файлами с чередованием нужных и отсеиваемых данных, вышло, что нужные данные находящиеся между отсеиваемыми удаляются.

    Всего записей: 3486 | Зарегистр. 03-05-2006 | Отправлено: 10:18 01-11-2009
    NIKZZZZ



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Поставь себе RegexBuddy (отладчик регулярных выражений), и все проблемы исчезнут.

    Всего записей: 4579 | Зарегистр. 08-02-2006 | Отправлено: 10:29 01-11-2009
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

    Цитата:
    Я там случайно оставил «HKEY_CLASSES», вместо «HKEY_USERS»

    так я там дабавлял ещё

    Код:
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_USERS.*\[", "[")
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_CURRENT_CONFIG.*\[", "[")
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_LOCAL_MACHINE\HARDWARE.*\[", "[")
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_LOCAL_MACHINE\SAM.*\[", "[")
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_LOCAL_MACHINE\SECURITY.*\[", "[")

    это уже в проверка всех исключений... всё равно не работает. Мой вариант работает плохо, все необходимые строки находящиеся среди отсеиваемых все удаляется. То есть попался первый отсеиваемый элемент (их уже 5 и не важно какой) с него всё отсеивается до последнего отсеиваемого элемента. Сначала я подумал как он отсети строку если отсеиваемые идут подряд, посчитал что отсеится ровно через одну, однако удалилось всё, но как далее выяснилось проблема в чём то другом, если отсеиваются и правильные строки.

    Цитата:
    А зачем (?s) в конце?
    естественно смотрел, я думал нужно указывать и окончание ка групп символов которые есть но их не нужно трогать... теперь ясно что достаточно указать до чего искать.
     

    Цитата:
    Вобщем вот немного(?) поправил скрипт
    смотрю.
     
    NIKZZZZ
    Он стоит давно я куда только не вставлял регулярное выражение и тестовый текст, прога ничего не выдаёт, не пойму как работает, её бы на русском. Брал ихней фирмы прогу поиска и замены текста, такая же проблема, вроде прога умная, а чё куда вставлят не разберёшь, в отличии от неё "Search and Replace 5" интуитивна даже на иглише...
     
    Ну всё, похоже я разгадал загадку RegexBuddy, вроде показывает, и понял в чём проблема, он ищет до последней квадратной скобки )))).
     
    ViSiToR
    Строка

    Код:
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_USE.*?(\[)", "\1")

    работает в RegexBuddy, но через одну строку. Долже же быть такой шаблон, чтоб как то вернутся на один символ назад, и находить образцы все подряд, а не только нечётные.

    Всего записей: 3486 | Зарегистр. 03-05-2006 | Отправлено: 10:42 01-11-2009 | Исправлено: AZJIO, 11:32 01-11-2009
    NIKZZZZ



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO

    Цитата:
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_USE.*?(\[)", "\1")  

    А что и из чего должно получиться?

    Всего записей: 4579 | Зарегистр. 08-02-2006 | Отправлено: 11:41 01-11-2009
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Сдвиги сокращения кода, но пока что удаляются только нечётные

    Код:
    (?s)\[(HKEY_USE|HKEY_CURRENT_CONFIG|HKEY_LOCAL_MACHINE\\HARDWARE|HKEY_LOCAL_MACHINE\\SAM|HKEY_LOCAL_MACHINE\\SECURITY).*?(\[)

     
    Добавлено:
    NIKZZZZ

    Цитата:
    $SR1 = StringRegExpReplace($SR1, "(?s)\[HKEY_USE.*?(\[)", "\1")  
     
    А что и из чего должно получиться?  

    Эту строку дал ViSiToR
    Если проверять в RegexBuddy то символ замены \1 не подходит.

    Всего записей: 3486 | Зарегистр. 03-05-2006 | Отправлено: 11:59 01-11-2009
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 09:42 01-11-2009
    Цитата:
     Долже же быть такой шаблон, чтоб как то вернутся на один символ назад, и находить образцы все подряд, а не только нечётные

    Не знаю почему нечётные, но вот попробуй это:
     

    Код:
    $sSections = 'HKEY_(USERS|CURRENT_CONFIG|LOCAL_MACHINE\\(HARDWARE|SAM|SECURITY))'
    $sPattern = '(?mi)^\[(' & $sSections & ')\][\r\n]+(?:[^[\r\n].*(?:[\r\n]+|$))*'

     
    Добавлено:
    P.S
    \1 при замене не нужен.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 13:36 01-11-2009
    Открыть новую тему    

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 2)
    Widok (01-06-2010 13:08): Лимит страниц. Продолжаем здесь.


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.Board
    © Ru.Board 2000-2017

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru