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

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

Аватара для Creat0R

Must AutoIt


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

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


amel27
Цитата:
в чем собственно проблема?.. неужели так существенна одна лишняя строка кода?
Эх, если-бы одна... иногда такие замены приходится делать по 10, а то и 20 раз...

В общем решил я эту задачку UDF'ным путём ...

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

$Results = _StringRexExpReplaceEx($String,

MsgBox(64, "Results", $Results) ;На выходе имеем это: "c:\my test\test.zip"

Func _StringRexExpReplaceEx($String, $Patern, $Replace)
    If StringInStr($Patern, '|') And StringInStr($Replace, '|') Then
        Local $PaternArr = StringSplit($Patern, '|')
        Local $ReplaceArr = StringSplit($Replace, '|')
        Local $Ret = $String
        Local $Ubound = UBound($ReplaceArr)
        If UBound($PaternArr) <= UBound($ReplaceArr) Then $Ubound = UBound($PaternArr)
        For $i = 1 To $Ubound-1
            $Ret = StringRegExpReplace($Ret, $PaternArr[$i], $ReplaceArr[$i])
        Next
        Return $Ret
    Else
        Return StringRegExpReplace($String, $Patern, $Replace)
    EndIf
EndFunc
Правда не удаётся сделать замену по ссимволу | - но мне пока что это не нужно

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

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

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


Последний раз редактировалось Creat0R, 05-05-2007 в 12:45. Причина: Изменил немного пример в коде.


Отправлено: 12:37, 05-05-2007 | #385