powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как программно узнать ширину окна терминала
9 сообщений из 9, страница 1 из 1
Как программно узнать ширину окна терминала
    #37453191
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
Как программно узнать ширину окна терминала
    #37453629
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PtnМне нужно полностью очистить строку.
Попробовал пользоваться мнемониками
Код: plaintext
1.
WRITE /EL( 1 )
Выяснилось что если запустить терминал через screen в линуксе - то она нифига не работает, более того прерывает программу по ошибке.

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

А ты сами мнемоники грузил?
...
Рейтинг: 0 / 0
Как программно узнать ширину окна терминала
    #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
Как программно узнать ширину окна терминала
    #37453703
Ptn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
krvsaА ты сами мнемоники грузил?

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

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

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

W /EL( 1 )
^
<MNEMONICSPACE>

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

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

PtnА кстати текущую мнемонику как нибудь посмотреть можно ?
Х/з, небыло надобности в такой информации...
...
Рейтинг: 0 / 0
Как программно узнать ширину окна терминала
    #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
9 сообщений из 9, страница 1 из 1
Форумы / Caché, Ensemble, DeepSee, MiniM, IRIS, GT.M [игнор отключен] [закрыт для гостей] / Как программно узнать ширину окна терминала
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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