Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Caché Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 [gt.m] Команда Xecute  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
Всем доброго дня !
Вопрос.
Можно каким-то образом возврат (в
виде функции) результат команды Xecute ?

Спасибо.
26 окт 16, 08:15    [19822211]     Ответить | Цитировать Сообщить модератору
 Re: Команда Xecute  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12772
Valeriu
результат команды Xecute ?

У команд нет возвращаемых значений...

У некоторых еще можно использовать переменные окружения... Но не более того.
26 окт 16, 08:20    [19822222]     Ответить | Цитировать Сообщить модератору
 Re: Команда Xecute  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3068
Блог
Valeriu
Можно каким-то образом возврат (в
виде функции) результат команды Xecute ?
Примеры прилагаются.
26 окт 16, 08:21    [19822225]     Ответить | Цитировать Сообщить модератору
 Re: Команда Xecute  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
servit,

Хм.. в Каше есть то что мне надо - $Xecute
Жаль, мне в GT.M такую функцию бы ....
26 окт 16, 08:30    [19822244]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12772
Valeriu
мне в GT.M такую функцию бы ....

Она там не нужна.
Т.к. там нет процедуроблока.

Если тебе нужна именно функция с экзекютом, так вот она
   n
   s 
cmd="IF Prm2=0 s out=99 ELSE s ^testnum=Prm1/Prm2 s out=0"
   
val=$$xecute(cmd,1,0)
   
!,val
   
q
xecute(Command,Prm1,Prm2)
   
out
   
Command
   
out
26 окт 16, 08:49    [19822281]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
krvsa,
Ругается...

GTM>d GETT^FCGIZL
%GTM-E-SPOREOL, Either a space or an end-of-line was expected but not found
At M source location xecute+2^FCGIZL
26 окт 16, 09:02    [19822303]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12772
Valeriu
krvsa,
Ругается...

Пошел запускать свой ГТ.М...
26 окт 16, 09:57    [19822501]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12772
Valeriu, нужно было добавить еще пробел после ELSE...
tmp ;;;;[ 26.10.2016 10:01 ]
  
cmd="IF Prm2=0 s out=99 ELSE  w !,Prm1/Prm2 s out=0"
  
val=$$xecute(cmd,1,0)
  
!,val
  
q
xecute(Command,Prm1,Prm2)
  
out
  
Command
  
out
26 окт 16, 10:02    [19822527]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
gluconat_ca
Member

Откуда:
Сообщений: 85
krvsa
Valeriu, нужно было добавить еще пробел после ELSE...
tmp ;;;;[ 26.10.2016 10:01 ]
  
cmd="IF Prm2=0 s out=99 ELSE  w !,Prm1/Prm2 s out=0"
  
val=$$xecute(cmd,1,0)
  
!,val
  
q
xecute(Command,Prm1,Prm2)
  
out
  
Command
  
out


в данном случае после ELSE ничего никогда не будет выполняться по определению
26 окт 16, 12:16    [19823350]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
Valeriu
Member

Откуда: Chisinau
Сообщений: 1932
krvsa,
Понятно, но я хотел получить другой результат...
Захват ошибки при компиляции и отправка на ВЕБ страницу.
Примерно такой:
GET 
  
file="gl.m"
  
cmd="zl """_file_"""" 
  ;s cmd="IF Prm2=0 s out=99 ELSE  w !,Prm1/Prm2 s out=0"
  
val=$$xecute(cmd)
  
!,val
  
q
xecute(Command)
  
out
  
Command
  
out
 
;
Но GT.M по своему интерпретирует это.
Как не крутил, на нулевое устройство выплевывает результат.
(Я в рутине специально ошибку допускаю)

GTM>GET^FCGIZL
q X t w " ;
^-----
At column 17, line 20, source module /usr/gtm63A/gl.m
%GTM-E-SPOREOL, Either a space or an end-of-line was expected but not found
%GTM-E-UNDEF, Undefined local variable: out
At M source location xecute+3^FCGIZL

Бьюсь уже сколько и ни вкакую.

все ровно, СПАСИБО !
26 окт 16, 12:20    [19823374]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1364
krvsa
Она там не нужна... Т.к. там нет процедуроблока.
Процедуроблок тут не при чём. Функции $xecute может быть полезна в ситуациях, когда (из-за ограничений рабочей среды) есть возможность выполнить только "однострочник", но хочется при этом вернуть значение. Написать свою обёртку вокруг Xecute, как ты предлагаешь, конечно, можно, но об этом надо заранее позаботиться, а тут - готовое решение. Подобное можно сказать о многих "плюшках" Cache: $replace, $system.Event.*, etc - всё это с разной степенью лёгкости и эффективности моделируется на MUMPSe, но оно когда есть "из коробки", это удобно.
26 окт 16, 12:25    [19823401]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
ну я
Member

Откуда: Stalingrad
Сообщений: 1092
Valeriu,
пишет что не определена переменная out, к которой обращаются в строке xecute+3^FCGIZL
потому что в строке cmd="zl """_file_"""" ее изменение не предусмотрено.
поправьте код на
xecute(Command)
  
out
  
Command
  
q $g(out)
26 окт 16, 12:27    [19823407]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
gluconat_ca
Member

Откуда:
Сообщений: 85
krvsa
Valeriu, нужно было добавить еще пробел после ELSE...
cmd="IF Prm2=0 s out=99 ELSE  w !,Prm1/Prm2 s out=0"
Добавляя к ранее сделанному замечанию.
Если уж надо в одной строке и IF и ELSE использовать, то нужно погрузить ветку IF в X
cmd="X ""IF Prm2=0 s out=99"" ELSE  w !,Prm1/Prm2 s out=0"
26 окт 16, 12:48    [19823498]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12772
Ребята, есть куча вариантов как использовать команду XECUTE, т.ч. просто показывайте свои варианты и не стоит критиковать мой "набросок"...
26 окт 16, 13:15    [19823616]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12772
Alexey Maslov
Функции $xecute может быть полезна в ситуациях ...

Ну нет в ГТ.М такой функции... Просто нет.
26 окт 16, 13:16    [19823619]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
Alexey Maslov
Member

Откуда: СПб
Сообщений: 1364
krvsa
Ну нет в ГТ.М такой функции... Просто нет.
Никто с этим не спорит, там много чего нет, но кое-что ненароком может и появиться; например, функции $list*. Это интересно "прогрессивной общественности"?
26 окт 16, 13:47    [19823739]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12772
Alexey Maslov
но кое-что ненароком может и появиться; например, функции $list*

Это точно? Или просто слухи?
А, то наша молодежь понавтыкать ее успела в программки в дело и без дела...
26 окт 16, 13:53    [19823767]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
gluconat_ca
Member

Откуда:
Сообщений: 85
krvsa
Ребята, есть куча вариантов как использовать команду XECUTE, т.ч. просто показывайте свои варианты и не стоит критиковать мой "набросок"...

Я высказался по IF и ELSE в одной строка, тем более что "набросок" скопипастил Valeriu.
26 окт 16, 14:33    [19823921]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12772
gluconat_ca
Я высказался по IF и ELSE в одной строка

Я понял.
26 окт 16, 14:46    [19823977]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3068
Блог
krvsa
Это точно? Или просто слухи?
По-крайней мере тикет #9 $LIST functions пока не закрыт.
26 окт 16, 14:46    [19823978]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
krvsa
Member

Откуда: г Волжский
Сообщений: 12772
servit
По-крайней мере тикет #9 $LIST functions пока не закрыт.

Ясно...
Одной заботой мне будет меньше.
26 окт 16, 14:47    [19823984]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
DAiMor
Member

Откуда: Volzhsky -> Moscow -> CZ, Brno
Сообщений: 2304
servit
krvsa
Это точно? Или просто слухи?
По-крайней мере тикет #9 $LIST functions пока не закрыт.
Не думаю, что есть какой то смысл смотреть на эти тикеты там. Всего 10 тикетов, из них только один закрыт, и не потому что реализован, а просто дан ответ. С такой скоростью реализации запросов, они никогда не будут реализованы.
26 окт 16, 14:53    [19824010]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
servit
Member

Откуда: г. Кишинёв, Республика Молдова
Сообщений: 3068
Блог
DAiMor
С такой скоростью реализации запросов, они никогда не будут реализованы.
Они уже реализованы: 12118934.
Осталось только внедрить.
26 окт 16, 14:57    [19824039]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
gluconat_ca
Member

Откуда:
Сообщений: 85
Valeriu
krvsa,
Понятно, но я хотел получить другой результат...
Захват ошибки при компиляции и отправка на ВЕБ страницу.


Ошибки компиляции всегда идут на stderr. Ищите способ перенаправить.
26 окт 16, 15:44    [19824314]     Ответить | Цитировать Сообщить модератору
 Re: [gt.m] Команда Xecute  [new]
ну я
Member

Откуда: Stalingrad
Сообщений: 1092
servit
DAiMor
С такой скоростью реализации запросов, они никогда не будут реализованы.
Они уже реализованы: 12118934.
Осталось только внедрить.

Интервью переехало сюда http://thedarkaugust.blogspot.ru/2016/03/blog-post_20.html
26 окт 16, 16:16    [19824573]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Caché Ответить