[решено] И снова stringRegExpReplace...

Ответить
Аватара пользователя
Twix1124

[решено] И снова stringRegExpReplace...

Сообщение Twix1124 »

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

Re: [решено] И снова stringRegExpReplace...

Сообщение Creat0R »

Цитата Twix1124:



В справке написано что возвращается только @error (собственно, как и в stringRegExp)...
[решено] И снова stringRegExpReplace...




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





Код:

Код: Выделить всё

$sRet = StringRegExpReplace("Some short data", "Some (.*) data", "\1")
MsgBox(64, 'Title', $sRet) ;$sRet = "short"
Аватара пользователя
Twix1124

Re: [решено] И снова stringRegExpReplace...

Сообщение Twix1124 »

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

Re: [решено] И снова stringRegExpReplace...

Сообщение FlatX007 »

Код:

Код: Выделить всё

$Data = 100 ; Задаём пременной под "Именем" Data значение 100
; Если нам нужно вернуть значение переменной $Data то просто указываем её
MsgBox(0,'',$Data) ; Переменная возвращает значение которое мы ей задали
Аватара пользователя
Creat0R

Re: [решено] И снова stringRegExpReplace...

Сообщение Creat0R »

Цитата Twix1124:



В чём разница между "возвращается" и "задаётся"?
[решено] И снова stringRegExpReplace...




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





Код:

Код: Выделить всё

$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

Re: [решено] И снова stringRegExpReplace...

Сообщение amel27 »

Цитата Twix1124:



Как присвоить переменной значение того, что заменяем?
[решено] И снова stringRegExpReplace...






Код:

Код: Выделить всё

$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)
[решено] И снова stringRegExpReplace...




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



- результат замены;

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




Цитата Creat0R:



@error задаётся, он не может возвращаться, возвращается значение
[решено] И снова stringRegExpReplace...




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



P.S. весело тут у вас Изображение
Ответить

Вернуться в «AutoIt»