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

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

Аватара для Creat0R

Must AutoIt


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

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


amel27
Цитата:
зачем там RegExp?
Я тоже в начале не хотел это использовать, но дело в том, что в отличие от приведённого мной примера, иногда есть необходимость для каждой замены задавать Patern (кстати, как оно по русский? ), чтобы по нему делать замену.

Вобщем спасибо, идея с созданием массива вне функции мне понравилась, это позволяет более удобно задавать Patern и соответственно замену.
А также...

Цитата:
- нет проблем с форматными символами (речь о "|");


Вот немного переделал, добавил проверку ошибочности и возврат общего числа сделанных замен (@Extended):

Код: Выделить весь код
$String = 'file://localhost/%22c:/my%20test/test.zip%22'
Dim $Pattern[4] = ['/', '%20', '%22', 'file:\\localhost\']
Dim $Replace[4] = ['\', ' ', '"', '']

$String = _StringMultiReplace($String, $Pattern, $Replace)

MsgBox (64, "Results", $String  & @LF & "Число замен: " & @extended)
;На выходе имеем это:
;"c:\my test\test.zip"
;Число замен: 9

Func _StringMultiReplace($String, $Pattern, $Replace)
    If Not IsArray($Pattern) Or Not IsArray($Replace) Then Return SetError(1, 0, $String)
    Local $Extended = 0
    ReDim $Replace[UBound($Pattern)]
    For $i = 0 To UBound($Pattern)-1
        $String = StringReplace($String, $Pattern[$i], $Replace[$i])
        $Extended += @extended
    Next
    Return SetError(0, $Extended, $String)
EndFunc
gregaz
Цитата:
При закрытии дочернего окна GUI у меня обычно закрывается и родительсое окно.
Это зависит от того как оно закрывается...

Цитата:
Чем это достигнуто ?
Функция GuiDelete() имеет один опциональный параметр, это должен быть уникальный идентификатор, который возвращается функцией GuiCreate().

Соответственно, если имеем 2 ГУИ:

$Gui_1 = GuiCreate("Первый ГУИ")

$Gui_2 = GuiCreate("Второй ГУИ")


То для закрытия второго (предполагается что они оба уже видны), задаём как первый параметр команды GuiDelete() его идентификатор:

GuiDelete($Gui_2)

Также можно и спрятать окно:

GuiSetState(@SW_HIDE, $Gui_2)

Для показа обратно:

GuiSetState(@SW_SHOW, $Gui_2)

-------
“Сделай так просто, как возможно, но не проще этого.”... “Ты никогда не решишь проблему, если будешь думать так же, как те, кто её создал.”

Альберт Эйнштейн

P.S «Не оказываю техподдержку через ПМ/ICQ, и по email - для этого есть форум. ©»

http://creator-lab.ucoz.ru/Images/Icons/autoit_icon.png Русское сообщество AutoIt | http://creator-lab.ucoz.ru/Images/Ic...eator_icon.png CreatoR's Lab | http://creator-lab.ucoz.ru/Images/Icons/oac_icon.png Opera AC Community

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

Отправлено: 09:37, 09-06-2007 | #501