Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   AutoIt (http://forum.oszone.net/forumdisplay.php?f=103)
-   -   [решено] И снова stringRegExpReplace... (http://forum.oszone.net/showthread.php?t=141515)

Twix1124 31-05-2009 17:31 1131686

И снова stringRegExpReplace...
 
Как присвоить переменной значение того, что заменяем? В справке написано что возвращается только @error (собственно, как и в stringRegExp)...

FlatX007 31-05-2009 17:45 1131702

Тут понятно описано ...
http://forum.oszone.net/thread-139194.html

Creat0R 31-05-2009 17:47 1131704

Цитата:

Цитата Twix1124
В справке написано что возвращается только @error (собственно, как и в stringRegExp)... »

Это в какой справке? @error задаётся, он не может возвращаться, возвращается значение:

Код:

$sRet = StringRegExpReplace("Some short data", "Some (.*) data", "\1")

MsgBox(64, 'Title', $sRet) ;$sRet = "short"


Twix1124 31-05-2009 18:30 1131731

=\ В чём разница между "возвращается" и "задаётся"?

FlatX007 31-05-2009 18:39 1131733

Код:

$Data = 100 ; Задаём пременной под "Именем" Data значение 100

; Если нам нужно вернуть значение переменной $Data то просто указываем её

MsgBox(0,'',$Data) ; Переменная возвращает значение которое мы ей задали


Creat0R 31-05-2009 18:45 1131737

Цитата:

Цитата Twix1124
В чём разница между "возвращается" и "задаётся"? »

В том что возвращается функцией...

Код:

$sRet = _Func()
Тут $sRet будет равен тому что возвращает Func(), а @error это макрос, задаётся функцией типа SetError()...

Код:

$sRet = _Func()
If @error = 1 Then MsgBox(0, "", "@error = 1")
MsgBox(0, "", "$sRet = " & $sRet)

Func _Func()
      SetError(1)
      Return 10
EndFunc


amel27 01-06-2009 03:49 1131997

Цитата:

Цитата Twix1124
Как присвоить переменной значение того, что заменяем? »

Код:

$sStr = "Some short data" ; присвоить переменной $sStr значение того, ГДЕ заменяем
$sReg = "Some (.*) data"  ; присвоить переменной $sReg значение того, ЧТО заменяем
$sRep = "\1"              ; присвоить переменной $sRep значение того, ЧЕМ заменяем

$sRet = StringRegExpReplace($sStr, $sReg, $sRep) ; присвоить переменной $sRet результат замены (то, что возвращает функция)
$sErr = @error                                  ; присвоить переменной $sErr код последней ошибки
$sExt = @extended                                ; присвоить переменной $sExt кол-во произведенных замен / смещение (при ошибке)

MsgBox(64, 'Title', "результат : " &@TAB& $sRet &@CRLF& _
                    "ошибка : "    &@TAB& $sErr &@CRLF& _
                    "замен/смещ.: "&@TAB& $sExt )

Цитата:

Цитата Twix1124
В справке написано что возвращается только @error (собственно, как и в stringRegExp) »

не только @error, но и:

- результат замены;
- @extended - количество произведенных замен или смещение до ошибочного символа (при ошибке)

Цитата:

Цитата Creat0R
@error задаётся, он не может возвращаться, возвращается значение »

игра слов (ИМХО) - внутри UDF "задается", при ее вызове - "возвращается"... ну и что, что "макрос", все равно код ошибки хранится где-то в памяти - переменной, пусть и закрытой (Private), главное вовремя скопировать себе это значение :)

P.S. весело тут у вас :gigi:


Время: 10:17.

Время: 10:17.
© OSzone.net 2001-