Ru-Board.club
← Вернуться в раздел «Программы»

» AutoIT

Автор: NIKZZZZ
Дата сообщения: 03.09.2007 03:30
ViSiToR

Цитата:
А пример по короче можно привести?

Так баг-то и в этом заключается, упрощаешь этот текстовой файлик - все работает. Я его и так порезал, насколько смог.

Вот результат, что должно получиться.




Добавлено:
ViSiToR
Баг исправлен в версии 3.2.7.2, только что скачал.

3.2.7.2 (2nd September 2007) (Beta)
- Changed: PCRE regular expression engine updated to 7.3.

AutoIt v3.2.6.0 - баг остался!
Еще могу добавить - скорость выполнения StringRegExp возросла в последних бетках почти на порядок, по сравнению с 3.2.4.9.
Автор: NIKZZZZ
Дата сообщения: 11.09.2007 22:52
ViSiToR

Цитата:
Я бы тогда может и зарепортил на форуме... я там слегка известный баг-репортёр

В regular expression не отрабатывается $ - конец строки, ^ отрабатывается корректно.
Автор: ViSiToR
Дата сообщения: 12.09.2007 00:17
NIKZZZZ

Цитата:
В regular expression не отрабатывается $

В новой версии? в 3.2.4.9 работает ещё - кстати, можно также использовать \z - Конец строки (точнее всего String'а).




Вышла новая версия AutoIt v3.2.8.1 (10th September, 2007)

Список изменении по сравнению с 3.2.6.0:

http://www.autoitscript.com/autoit3/docs/history.htm
Цитата:

8th September, 2007 - v3.2.8.1

Fixed: Possible crash with StringRegExp().


8th September, 2007 - v3.2.8.0

Changed: General speed improvements (currently up to 24% in some cases compared to 3.2.6.0).
Changed: PCRE regular expression engine updated to 7.3.
Changed: Recursion-based code limits relaxed.

Added: wchar type added to DllStructCreate().
Added: WinMove() speed parameter.

Fixed: Crash on AutoIt exit if TrayCreateItem() is not deleted.
Fixed: AutoIt crash on bad parameter when calling TrayCreateMenu()
Fixed: Character positions used in StringRegExp() not correct for characters > 127 (accents, non-Western)
Fixed: ProcessExist() under Windows 9x.
Fixed: GUISetState(@SW_DISABLE) not disabling keyboard input.
Fixed: Sometimes AutoIt crashes on DllStructGetData() with char[] types.
Fixed: Au3Info restoring last settings at startup.
Fixed: Better handling of notifications when using colored buttons.
Fixed: ControlGetText() crash on Scite windows.
Fixed: $LVSCW_AUTOSIZE column truncates display string.
Fixed: Incorrect listview creation with GUICtrlCreateListView().
Fixed: Memory leak when AutoIt needed to get long file name.
Fixed: ListviewItem not created after other child Window creation/deletion.
Fixed: ControlGetFocus() returning bad ClassNN values.
Fixed: Detection of invalid CONTINUELOOP statement.


P.S
3 бага из этого списка я зарепортил:

1. GUISetState(@SW_DISABLE) not disabling keyboard input.
2. ListviewItem not created after other child Window creation/deletion.
3. Detection of invalid CONTINUELOOP statement.

Автор: euheny
Дата сообщения: 12.09.2007 07:11
А что нужно указать в StringRegExp, чтобы некоторая последовательность символов обрабатывалась только как текст ?
Автор: Madness
Дата сообщения: 12.09.2007 10:29
Спонадобился тут AutoIT, а Bred3 (да, я в курсе, что есть другие редакторы :) не желает подсвечивать команды autoit :(
Хотя описание для colorer и было найдено в комплекте бреда, но вот только древнее оно :(

Так что вот. Чуть подправлено, добавлена подсветка новых функций.

Установка: autoit.hrc скопировать в ...Bred3\plugins\colorer5\hrc\rare, исправить ...Bred3\plugins\colorer5\hrc\colorer.hrc (выделено):

Цитата:
<prototype name="AutoIt" group="rare" description="AutoIt 2.x">
<location link="rare/autoit.hrc"/>
<filename>/\.(aut|au3)$/i</filename>


Мож кому и пригодится.
Автор: Maza Faka
Дата сообщения: 12.09.2007 14:40
Madness
Ты SciTE пробовал, рекомендую!
Автор: ViSiToR
Дата сообщения: 12.09.2007 17:19
euheny

Цитата:
что нужно указать в StringRegExp, чтобы некоторая последовательность символов обрабатывалась только как текст ?

Возможно имеется в виду как алфавитные буквы? потому как кроме текста RegExp ничего обрабатывать не может


Код: StringRegExp("_Test_", "(?i)[a-z]")
Автор: euheny
Дата сообщения: 13.09.2007 01:10

Цитата:
Возможно имеется в виду как алфавитные буквы?

мой пример - скобка в тексте(pattern), кот StringRegExp обрабатывает как это самое RegExp,
а надо как простую скобку
Автор: NIKZZZZ
Дата сообщения: 13.09.2007 01:16
euheny

Цитата:
мой пример - скобка в тексте

Перед такими символами ставится "\" - "\("
Автор: euheny
Дата сообщения: 13.09.2007 07:08

Цитата:
Перед такими символами ставится "\" - "\("

знаю, но речь о неизвестном заранее наборе символов, в котором может содержаться эта скобка
Автор: ViSiToR
Дата сообщения: 13.09.2007 07:21
euheny

Цитата:
речь о неизвестном заранее наборе символов

Можно предварительно заменить в строке служебные символы:


Код:
$String = "test [or] example ;)"

$String = StringRegExpReplace($String, '([][{}()|.?+*\\^])', '\\\1')

MsgBox(64, "", "Теперь все служебные символы могут обрабатываться как обычные ;) :" & @LF & @LF & $String)
Автор: NIKZZZZ
Дата сообщения: 13.09.2007 07:22
euheny

Цитата:
неизвестном заранее наборе символов

Значит в этом наборе символов предварительно необходимо выполнить замену.
Автор: 2Oldschool
Дата сообщения: 13.09.2007 10:28
Создание сложного скрипта AutoIt, ищу либо репетитора либо человека который может написать код за оплату.

Посовейтуйте куда обратиться плиз.
Автор: NIKZZZZ
Дата сообщения: 13.09.2007 11:46
ViSiToR

Цитата:
$String = StringRegExpReplace($String, '([][{}()|.?+*\\^])', '\\\1')

А зачем нужно выделенное пустое множество?
Автор: Maza Faka
Дата сообщения: 13.09.2007 15:16
2Oldschool

Цитата:
Посовейтуйте куда обратиться

Попробуй сюда
Автор: ViSiToR
Дата сообщения: 13.09.2007 18:26
NIKZZZZ

Цитата:
зачем нужно выделенное пустое множество?

Попробуй мой пример без них - Ведь и квадратные скобки тоже попадаются, и считаются служебными символами.
Автор: NIKZZZZ
Дата сообщения: 13.09.2007 19:06
ViSiToR

Цитата:
StringRegExpReplace($String, '([][{}()|.?+*\\^])', '\\\1')

Тогда это должно выглядеть так:
StringRegExpReplace($String, '([{}()|.?+*\\^\]\[])', '\\\1')
В твоем примере [] будут просто проигнорированы - это не отдельные скобки, а пустое множество.
Автор: ViSiToR
Дата сообщения: 13.09.2007 19:32
NIKZZZZ

Цитата:
Тогда это должно выглядеть так:

И так можно..


Цитата:
В твоем примере [] будут просто проигнорированы

Ты мой пример пробовал?

А вообще то сам Patern писал не я, а человек который обладает обширными знаниями в RegExp
Автор: NIKZZZZ
Дата сообщения: 13.09.2007 19:51
ViSiToR
Твой пример можно интерпретировать двояко:
'([][{}()|.?+*\\^])'
'([][{}()|.?+*\\^])'
В таких случаях лучше не рисковать, хотя он и работает.

Автор: ViSiToR
Дата сообщения: 13.09.2007 20:25
NIKZZZZ

Цитата:
Твой пример можно интерпретировать двояко:

Неа

Первые скобки если являются служебными, они расматриваются как пара, если найдена вторая парная скобка внутри другой пары, тогда берётся именно она, в противном случае поиск продолжается дпалее до конца строки - RegExp механизм не смотрит на самые крайние (внешние) скобки, а именно на первые (и последующие) парные (это конечно зависит от заданных параметров).





Добавлено:
Desktop Icons Restorator 1.0
Программа предназначена для сохранения и восстановления позиции иконок рабочего стола.



P.S
В архиве кроме исходников есть также отдельно скомпилированный скрипт, работает без внешних ресурсов.
Автор: euheny
Дата сообщения: 15.09.2007 00:36

Цитата:
StringRegExpReplace($String, '([][{}()|.?+*\\^])', '\\\1')

Да - как ни странно работает

сразу что приходит на ум

Код: [no]
$String = "test [or] example )"
$characters = "][{}()|.?+*\\^"
$String = StringRegExpReplace($String, '([$characters])', '\\\1')
[/no]
Автор: ViSiToR
Дата сообщения: 15.09.2007 00:55
euheny


Цитата:
сразу что приходит на ум

Я что-то затрудняюсь понять к чему это всё ведёт?


Цитата:
странности какие-то

Ничего странного, просто не верное использование переменной


Код: $String = "test [or] example "
$characters = "][{}()|.?+*\\^"
$String = StringRegExpReplace($String, '[' & $characters & ']', '\\\1')
Автор: NIKZZZZ
Дата сообщения: 15.09.2007 01:15
ViSiToR
Каждый о своем.
Непонятный глюк StringRegExp - в русской XP работает , Eng - нет. Русские буквы не используются. Кодировка 1251, может с UniCode намудрили?
Автор: euheny
Дата сообщения: 15.09.2007 07:03
ViSiToR

Цитата:
Я что-то затрудняюсь понять к чему это всё ведёт?

ну как же - обойтись без StringRegExpReplace (мой второй код)


Цитата:
Пимерчиков чего?

того как это выглядит наглядно (принцип обработки скобок)


Цитата:
всё, дальше не реально(?)

да я к тому чтобы как-то конвертить в скажем C++
ну что-то типа того

NIKZZZZ
т.е. и с последней тоже самое ?


Автор: euheny
Дата сообщения: 17.09.2007 07:42
А есть какой скриптик для подключения dial-up ?

А то я тут начал делать - интересно сравнить
Автор: ViSiToR
Дата сообщения: 17.09.2007 08:09
euheny

Цитата:
того как это выглядит наглядно

Ну мой пример это показывает... особых примеров у меня нету


Цитата:
чтобы как-то конвертить в скажем C++

А зачем тогда AutoIt? или я опять не понимаю суть.


Цитата:
А есть какой скриптик для подключения dial-up ?

Можно через Rasdial... но есть и API-метод...


Код:
Global Const $INTERNET_AUTODIAL_FORCE_ONLINE = 0x01
Global Const $INTERNET_AUTODIAL_FORCE_UNATTENDED = 0x02
Global Const $INTERNET_AUTODIAL_FAILIFSECURITYCHECK = 0x04
Global Const $INTERNET_AUTODIAL_OVERRIDE_NET_PRESENT = 0x08

If _InetDisconnect() Then
MsgBox(0,'Сообщение','Подключение разорвано')
Else
MsgBox(16,'Ошибка','При разрыве подключения произошла ошибка')
EndIf

If _InetConnect($INTERNET_AUTODIAL_FORCE_ONLINE + $INTERNET_AUTODIAL_FORCE_UNATTENDED) Then
MsgBox(0,'Сообщение','Подключение установлено')
Else
MsgBox(16,'Ошибка','В процессе подключения произошла ошибка')
EndIf

Func _InetConnect($iFlags = 0x01, $hWnd = 0)
Local $ret = DllCall('wininet.dll', 'int', 'InternetAutodial', 'dword', $iFlags, 'hwnd', $hWnd)
If Not $ret[0] Then
$ret = DllCall('kernel32.dll', 'int', 'GetLastError')
Return SetError(1, $ret[0], False)
EndIf
Return True
EndFunc

Func _InetDisconnect()
Local $ret = DllCall('wininet.dll', 'int', 'InternetAutodialHangup', 'dword', 0)
If Not $ret[0] Then
$ret = DllCall('kernel32.dll', 'int', 'GetLastError')
Return SetError(1, $ret[0], False)
EndIf
Return True
EndFunc
Автор: pom205
Дата сообщения: 17.09.2007 14:53
ViSiToR
А в чём делается такая чудная подсветочка для форумов? Ткните в ссылку плиз.
Автор: ViSiToR
Дата сообщения: 17.09.2007 15:58
pom205

Цитата:
в чём делается такая чудная подсветочка для форумов?

В шапке есть Скрипт расскраски кода AutoIt для помещения в форумы
Автор: Elroir
Дата сообщения: 17.09.2007 15:58
pom205
В шапке, раздел "Готовые скрипты и программы с открытым кодом на AutoIt"

Добавлено:
ViSiToR
Автор: kefirko
Дата сообщения: 18.09.2007 22:44
Вопрос.
Для того, чтобы узнать задержку до хоста я могу использовать команду Ping ( address or hostname [, timeout] ).


Код:
$ping=Ping("europe.battle.net", 250)
If $ping Then
Msgbox(0, "Northrend (Europe)", "Задержка до сервера: " & $ping & "ms")
Else
Msgbox(0, "Northrend (Europe)", "Не удалось определить задержку")
EndIf

Страницы: 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192

Предыдущая тема: Quintura Search


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.