Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как программно узнать ширину окна терминала / 9 сообщений из 9, страница 1 из 1
23.09.2011, 13:06
    #37453191
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать ширину окна терминала
Как программно узнать ширину терминала ?

Мне нужно полностью очистить строку.
Попробовал пользоваться мнемониками
Код: plaintext
1.
WRITE /EL( 1 )
Выяснилось что если запустить терминал через screen в линуксе - то она нифига не работает, более того прерывает программу по ошибке.

Попробовали воспользоваться конструкцией
Код: plaintext
1.
SET X=$X WRITE $J("",X)

Но тут выяснилось что $X не ограничивается шириной окна терминала, то есть если при стандартном размере 80x25 написать
Код: plaintext
1.
WRITE $J("", 120 ),$X
то получим 120 а не 80 или 40, хотя сама строка разбилась на две.

Документацию полистал, но что то не нашел
...
Рейтинг: 0 / 0
23.09.2011, 15:16
    #37453629
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать ширину окна терминала
PtnМне нужно полностью очистить строку.
Попробовал пользоваться мнемониками
Код: plaintext
1.
WRITE /EL( 1 )
Выяснилось что если запустить терминал через screen в линуксе - то она нифига не работает, более того прерывает программу по ошибке.

Линукса у меня сейчас нет... Попробовать неначем...

А ты сами мнемоники грузил?
...
Рейтинг: 0 / 0
23.09.2011, 15:19
    #37453640
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать ширину окна терминала
У нас это делалется вот так

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
OPENUSE                                ; * Подготовка к работе *
 D KOI8
 U $P:(:/ECHO= 0 :$C( 27 )):"^%X364AIR"
 Q
KOI8                                   ; * Переключение в КОИ8 под Linux *
 q:$$OSSet
 I $$UNIX^ACACHE s val=$$SetIO^%NLS("uuu") q
 s val=$$SetIO^%NLS("RAW")
 q
OSSet()                                ; OS описана
 n val
 s val=$g(^Tr($ZZU,"OS"))
 s val=$$String^ASYS("D_OS",val, 1 )
 i val= 0  s val=$$SetIO^%NLS("RAW") q  1 
 i val= 1  s val=$$SetIO^%NLS("uuu") q  1  
 q  0 
...
Рейтинг: 0 / 0
23.09.2011, 15:39
    #37453703
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать ширину окна терминала
krvsaА ты сами мнемоники грузил?

Эм... нет :( даже не в курсе как это, оно как то само всегда было
...
Рейтинг: 0 / 0
23.09.2011, 15:48
    #37453731
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать ширину окна терминала
PtnkrvsaА ты сами мнемоники грузил?
Эм... нет :( даже не в курсе как это
Тогда смотри мои процедурки...
...
Рейтинг: 0 / 0
23.09.2011, 15:50
    #37453738
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать ширину окна терминала
PtnВыяснилось что если запустить терминал через screen в линуксе - то она нифига не работает, более того прерывает программу по ошибке.
Покажи что за ошибка...

Если мнемоники не загружены - будет что-то типа "нет такой функции" или что-то в этом роде, уже не помню...
...
Рейтинг: 0 / 0
24.09.2011, 19:13
    #37454788
Ptn
Ptn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать ширину окна терминала
krvsa,

Код: plaintext
1.
2.
3.
4.
5.
USER>w /el( 1 )

W /EL( 1 )
^
<MNEMONICSPACE>

Ну да, буду смотреть процедуры, хотя вопрос про ширину всё таки актуален. В твоем коде я так этого нет.

А кстати текущую мнемонику как нибудь посмотреть можно ?
...
Рейтинг: 0 / 0
24.09.2011, 19:18
    #37454792
krvsa
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать ширину окна терминала
Ptnвопрос про ширину всё таки актуален. В твоем коде я так этого нет.
Меня такой вопрос не волновал ранее... Мнемоники работают - ими и пользовались.

PtnА кстати текущую мнемонику как нибудь посмотреть можно ?
Х/з, небыло надобности в такой информации...
...
Рейтинг: 0 / 0
26.09.2011, 17:05
    #37456081
servit
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как программно узнать ширину окна терминала
Ptn ,

Программно предустановленное значение RightMargin можно узнать, например, с помощью:
##class(%Device).GetCurrent(...)
##class(%Device).GetRightMargin()

Очистить заданную строку, не привязываясь к ширине окна, можно, например, так:

write #
for i=1:1:10 write $replace($justify("-"_i,80)," ","a"),!

hang .5

set X=$X,Y=$Y
write /CUP(5,0),/EL,/CUP(Y,X)

Тестировал в Caché терминале для версии Cache for Windows (x86-32) 2011.2 (Build 282U)
...
Рейтинг: 0 / 0
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как программно узнать ширину окна терминала / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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