|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Всем доброго дня ! Вопрос. Можно каким-то образом возврат (в виде функции) результат команды Xecute ? Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 08:15 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriuрезультат команды Xecute ? У команд нет возвращаемых значений... У некоторых еще можно использовать переменные окружения... Но не более того. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 08:20 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
ValeriuМожно каким-то образом возврат (в виде функции) результат команды Xecute ?Примеры прилагаются. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 08:21 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
servit, Хм.. в Каше есть то что мне надо - $Xecute Жаль, мне в GT.M такую функцию бы .... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 08:30 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriuмне в GT.M такую функцию бы .... Она там не нужна. Т.к. там нет процедуроблока. Если тебе нужна именно функция с экзекютом, так вот она Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 08:49 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
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.10.2016, 09:02 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriukrvsa, Ругается... Пошел запускать свой ГТ.М... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 09:57 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriu , нужно было добавить еще пробел после ELSE ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 10:02 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
krvsa Valeriu , нужно было добавить еще пробел после ELSE ... Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
в данном случае после ELSE ничего никогда не будет выполняться по определению ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 12:16 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
krvsa, Понятно, но я хотел получить другой результат... Захват ошибки при компиляции и отправка на ВЕБ страницу. Примерно такой: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
Как не крутил, на нулевое устройство выплевывает результат. (Я в рутине специально ошибку допускаю) Код: plaintext 1. 2. 3. 4. 5. 6.
Бьюсь уже сколько и ни вкакую. все ровно, СПАСИБО ! ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 12:20 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
krvsaОна там не нужна... Т.к. там нет процедуроблока.Процедуроблок тут не при чём. Функции $xecute может быть полезна в ситуациях, когда (из-за ограничений рабочей среды) есть возможность выполнить только "однострочник", но хочется при этом вернуть значение. Написать свою обёртку вокруг Xecute, как ты предлагаешь, конечно, можно, но об этом надо заранее позаботиться, а тут - готовое решение. Подобное можно сказать о многих "плюшках" Cache: $replace, $system.Event.*, etc - всё это с разной степенью лёгкости и эффективности моделируется на MUMPSe, но оно когда есть "из коробки", это удобно. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 12:25 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriu, пишет что не определена переменная out, к которой обращаются в строке xecute+3^FCGIZL потому что в строке s cmd="zl """_file_"""" ее изменение не предусмотрено.поправьте код на Код: plaintext 1. 2. 3.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 12:27 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
krvsa Valeriu , нужно было добавить еще пробел после ELSE ... Код: plaintext
Если уж надо в одной строке и IF и ELSE использовать, то нужно погрузить ветку IF в X Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 12:48 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Ребята, есть куча вариантов как использовать команду XECUTE , т.ч. просто показывайте свои варианты и не стоит критиковать мой "набросок"... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:15 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Alexey MaslovФункции $xecute может быть полезна в ситуациях ... Ну нет в ГТ.М такой функции... Просто нет. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:16 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
krvsaНу нет в ГТ.М такой функции... Просто нет.Никто с этим не спорит, там много чего нет, но кое-что ненароком может и появиться; например, функции $list*. Это интересно "прогрессивной общественности"? ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:47 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Alexey Maslovно кое-что ненароком может и появиться; например, функции $list* Это точно? Или просто слухи? А, то наша молодежь понавтыкать ее успела в программки в дело и без дела... ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 13:53 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
krvsaРебята, есть куча вариантов как использовать команду XECUTE , т.ч. просто показывайте свои варианты и не стоит критиковать мой "набросок"... Я высказался по IF и ELSE в одной строка, тем более что "набросок" скопипастил Valeriu. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:33 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
gluconat_caЯ высказался по IF и ELSE в одной строка Я понял. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:46 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
krvsaЭто точно? Или просто слухи?По-крайней мере тикет #9 $LIST functions пока не закрыт. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:46 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
servitПо-крайней мере тикет #9 $LIST functions пока не закрыт. Ясно... Одной заботой мне будет меньше. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:47 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
servitkrvsaЭто точно? Или просто слухи?По-крайней мере тикет #9 $LIST functions пока не закрыт.Не думаю, что есть какой то смысл смотреть на эти тикеты там. Всего 10 тикетов, из них только один закрыт, и не потому что реализован, а просто дан ответ. С такой скоростью реализации запросов, они никогда не будут реализованы. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:53 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
DAiMorС такой скоростью реализации запросов, они никогда не будут реализованы.Они уже реализованы: 12118934 . Осталось только внедрить. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 14:57 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriukrvsa, Понятно, но я хотел получить другой результат... Захват ошибки при компиляции и отправка на ВЕБ страницу. Ошибки компиляции всегда идут на stderr. Ищите способ перенаправить. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 15:44 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
servitDAiMorС такой скоростью реализации запросов, они никогда не будут реализованы.Они уже реализованы: 12118934 . Осталось только внедрить. Интервью переехало сюда http://thedarkaugust.blogspot.ru/2016/03/blog-post_20.html ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:16 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
gluconat_ca, Раньше, для десктопных приложений это проблему я решил написав функцию (VB6) на стороне клиента. (Xecute) используя сокет Код: vbnet 1. 2. 3. 4. 5. 6. 7.
А ошибки ловил в переменную Код: vbnet 1.
А здесь задача словить их на сервере ... Я испробовал много, но безрезультатно. Как не вертись ошибка на терминале выскакивает. Можно так, напрямую, но это тоже не выход - у меня клиент на ВЕБ. Код: plaintext 1. 2.
А вот что испробовал и не только .. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:24 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriu, Для PIPE есть параметр открытия, называется он 'stderr', который поможет принять основной программе вывод в stderr того, что запускается через PIPE. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:43 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
gluconat_ca, Пробовал: Код: plaintext 1. 2. 3. 4. 5.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:59 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriu, Компилируйте по-другому. Гоним все stdXXX во временный файл: zsystem "mumps routine.m > /tmp/appname"_$j_".output 2>&1 3>&1" Гоним временный файл в текущий девайс: zsystem "cat /tmp/appname"_$j_".output" Чистимся: zsystem "rm /tmp/appname"_$j_".output" Подключаем рутину: zlink "' + AName + '.m" ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 16:59 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriugluconat_ca, Пробовал: Код: plaintext 1. 2. 3. 4. 5.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8.
Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 17:59 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
(с подачи ну я) вызов mumps в параметре command можно упростить. Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 18:24 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
gluconat_ca and Евгений !!! Спасибо большое !!! То что надо ! А я все таки неправильно делал.. ;) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 19:57 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Я пропустил саму команду ZLINK, но это по документации как бы не ошибка Код: plaintext 1.
Добавил в коде. Еще раз спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 20:19 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriu, Там еще нюансик. Используется имя рутины для образования имени файла с расширением m. И если первый символ имени рутины процент, то заменяется на подчеркивание. Код: plaintext 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 21:10 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
ну я, Да, в курсе. Я там вроде учел. ... |
|||
:
Нравится:
Не нравится:
|
|||
26.10.2016, 21:15 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
А в идеале это должно выглядеть примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 07:54 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriu, кое-что лишнее Код: plaintext
Код: plaintext
... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 09:05 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Ёлы палы,из-за копи паста остались ещё лишние закорючки: Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 09:25 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriu, надо бы ещё перед close p поставить use io если уж приближаться к идеальному рабочему коду :) ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 09:33 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
gluconat_ca, Первоначально примерно так и было. Думал так будет правильнее. Я как делаю. С начало сохраняю как простой текст в файле. (.m) Потом само компилирование и запись в object файле (.o) Хотя команда DO предполагает компилирование(выше указал) думаю , что ZLINK должен быть в любом случае, а старый файл (.о) удалить. Во всяком случае вопрос как бы уже отработан. Остались нюансы. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 09:37 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriu, В любом случае ненужные переключения между устройствами надо бы убрать, вне зависимости от использования или не использования этого кода в 'продакшене'. Код: plaintext 1.
Код: plaintext 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 09:49 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
gluconat_ca, Да. Спасибо. Согласен. Еще предстоит мне пробовать словить ошибку при использованием команде ZWRITE. Вроде как бы понятно, но там есть нюансик. При выборе в команде маску для глобала и если она без ошибок, тогда все ОК. Например: zwr ^glob(,8924,*) Если ошибка при выборе например zwr ^glob(,8924*) (просто забыли запятую), тогда приложение зависает. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12.
... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 10:09 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriugluconat_ca, Хотя команда DO предполагает компилирование(выше указал) думаю , что ZLINK должен быть в любом случае, а старый файл (.о) удалить. Во всяком случае вопрос как бы уже отработан. Остались нюансы. Если задача стоит в выявлении ошибок компиляции программы, для этого нужно использовать вызов mumps с нужными ключами. ZLINK подключает (прилинковывает) к текущему M-процессу новую или модифицированную программу, автоматически компилируя её. Так что он нужен больше тогда когда нужно что-то менять во время работы. Я понял так, что речь больше шла о проверке на компилируемость без ошибок. Вторая цель требует тщательного изучения документации, тем более что в последн(-ей,-их) верси(-и,-ях) gt.m есть нововведения по этой части. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 10:10 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Valeriu, А почему бы не использовать предварительную проверку аргумента ZWRITE на 'валидность' ? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 10:17 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
gluconat_ca, Это тоже вариант, но уже сложнее мне кажется... Во всяком случае посмотрю и этот. Спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
27.10.2016, 10:23 |
|
[gt.m] Команда Xecute
|
|||
---|---|---|---|
#18+
Коллеги Valeriu, gluconat_ca, и другие читающие этот форум, но скромно молчащие о своём интересе к M[UMPS]-системам. Есть предложения, которые, возможно, вас заинтересуют. Киньте сообщение на почту в профиле; обещаю ответить каждому. ... |
|||
:
Нравится:
Не нравится:
|
|||
02.11.2016, 10:30 |
|
|
start [/forum/topic.php?all=1&fid=39&tid=1556414]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
151ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
68ms |
get tp. blocked users: |
1ms |
others: | 11ms |
total: | 271ms |
0 / 0 |