powered by simpleCommunicator - 2.0.37     © 2025 Programmizd 02
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [gt.m] Куда можно перенаправить вывод?
5 сообщений из 5, страница 1 из 1
[gt.m] Куда можно перенаправить вывод?
    #39171097
osuss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Недавно начал разбираться с gt.m и столкнулся с проблемой.
Необходимо временно перенаправить вывод в какой-нибудь буфер, чтобы в случае возникновения ошибок в работе программы не отдавать неполный контент, а вывести только сообщение об ошибке

Исходный код:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
test
 ;
 q 

test 
  n a,b,c 
  s a=1,b=2 
  w a,! 
  w b,! 
  w c,! 
  q  
Код: plaintext
1.
2.
3.
4.
GTM>do test^test

>1 
>2 
>%GTM-E-UNDEF, Undefined local variable: c 

Я изобрел такое решение
Код: 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.
test2 
  n f 
  s f="testFile" 
   
  n a,b,c 
  s a=1,b=2 
  ;s c=3   ; !!! 
  s $ZTRAP="goto err" 
   
  open f:(NEWERSION) 
  use f 
   w a,! 
   w b,! 
   w c,! 
  close f 
   
  n d,e,g 
  open f 
  use f 
   read d 
   read e 
   read g 
  close f 
   
  w d,! 
  w e,! 
  w g,!         
  q 
         
err 
  s $ZTRAP="" 
  close f 
  w "Error" 
  q
Код: plaintext
1.
GTM>do test2^test
>Error

Если раскомментировать s c=3   ; !!!

Код: plaintext
1.
2.
3.
GTM>do test2^test
>1 
>2 
>3

Но я считаю, что использование файловой системы не самое корректное решение. Есть ли возможность перенаправить вывод не в файл, а в глобал, например, или в поток?
...
Рейтинг: 0 / 0
[gt.m] Куда можно перенаправить вывод?
    #39226685
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
osussЕсть ли возможность перенаправить вывод не в файл, а в глобал, например, или в поток?
Не совсем перенаправление... Но все же.
Код: plaintext
1.
2.
3.
4.
5.
test
 d WRITE("Test")
 q
WRITE(Text)
 s ^tmp($i(^tmp))=$g(Text)
 q
...
Рейтинг: 0 / 0
[gt.m] Куда можно перенаправить вывод?
    #39227771
О-О-О
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
krvsa,

C gt.m не знаком, но в Каше есть две чудные фишки.

Set $ZTrap ="OshibkaPoSMS" // Переход к метке/коду (Goto OshibkaPoSMS), если возникла ошибка.
и выполняется нужный код. Эту стоку помещаете в самом начале исполняемого кода.

А код куда переход будет во время ошибки в самом низу программы.



Есть вторая фишка $ETrap - выполняется команда, в случае возникновения ошибки.

Есть ещё $Ecode и $ZError, но я почему то их не использую (чем то они мне не угодили).
...
Рейтинг: 0 / 0
[gt.m] Куда можно перенаправить вывод?
    #39228796
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О-О-О , только мне это зачем?

В ГТ.М есть такие же обработчики ошибок...
...
Рейтинг: 0 / 0
[gt.m] Куда можно перенаправить вывод?
    #39232465
osuss
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О-О-О

Тут суть не обработке ошибок, а в том, что нужно куда-то "складировать" весь вывод перед отправкой его клиенту/на экран/еще куда и показывать или весь вывод или только ошибку
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / [gt.m] Куда можно перенаправить вывод?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]