Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Программирование терминала  (Прочитано 21322 раз)
0 Пользователей и 1 Гость смотрят эту тему.
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« : 06-09-2003 10:53 » 

:?: Помогите запрограммировать терминал для создания UI. Графику использовать не могу по разнообразным причинам. Система FreeBSD 4.7  и Debian Linux 2.2
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 08-09-2003 11:17 » 

Окошки и все такое? - Используй одну из терминальных библиотек. Напр.: ncurses, slang и т.п.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #2 : 08-09-2003 12:10 » 

Цитата: RXL
Окошки и все такое? - Используй одну из терминальных библиотек. Напр.: ncurses, slang и т.п.
А как???
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #3 : 08-09-2003 12:18 » 

Ну можешь рисовать сам - скажем делать прямоугольник и в нем писать - написать свою маленькую библиотечку для окошечек чисто визуальную без перетаскивания их и т.д.
Записан

А птичку нашу прошу не обижать!!!
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #4 : 08-09-2003 12:40 » 

Цитата: Гром
Ну можешь рисовать сам - скажем делать прямоугольник и в нем писать - написать свою маленькую библиотечку для окошечек чисто визуальную без перетаскивания их и т.д.
Мне нужно-то: несколько строк для ввода, окно для чата и ввод по-символьный без буфферезации
А сам это как? Хранить весь экран и его перерисовывать?? не-ет!!! Я так делать не буду (это, как минимум, не спортивно;))!!!
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #5 : 08-09-2003 13:08 » 

Почему весь - только то что попадает под область открываемого окна...
А иначе никто и не делает - области окон и их прорисовке формируются в очередь или список и меняются...
При этом постоянно при движении отслеживаются изменения тех или иных подложек - но тебе такого не надо - пара тройка окон с общей подложкой типа фон.
Записан

А птичку нашу прошу не обижать!!!
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #6 : 08-09-2003 14:29 » 

А перемещаться через ANSI?? А если терминал ANSI не поддерживает?? А отслеживания ввода управляющих клавиш как предлагаешь сделать?? Мне IOCTL подавай, или типа того... Тем более как вводить по КЛАВИШАМ, а не по символам? (не через stdio).
Ncurces или slang? хорошо, дайте мне интерфейсы, а лучше и примерчиков пару (в исходниках FreeBSD копаться не собираюсь: гадко там код написан - ничего не поймешь!!!)
Совместимость Free и Debian можно сделать на уровне модуля..
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #7 : 08-09-2003 14:38 » 

FreeBSD не знаю, но всегда использовал при случае окна в фокусе (окно терминала активно) , я использовал getch() для выбора кода управляющих клавиш и управления....
Записан

А птичку нашу прошу не обижать!!!
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #8 : 08-09-2003 14:45 » 

Цитата: Гром
FreeBSD не знаю, но всегда использовал при случае окна в фокусе (окно терминала активно) , я использовал getch() для выбора кода управляющих клавиш и управления....
Он сначала буферезует ввод, сволочь, да и не так как надо работает Жаль Ну ничего, я в этом вопросе изучаю bash 8)
А вот как рисовать в терминале (примеры-программы в играх FreeBSD такие: как часы, etc.) ?? я нифига не разобрался (FreeBSD вообще через голову левой пяткой написана, правда работает, черт возьми, наредкость хорошо!!!)
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #9 : 08-09-2003 15:43 » 

Про рисование ты не говорил....
Перевести в граф режим терминал в *никс подобных стистемах по моему неудастся - только написав свою vga библиотеку - или если есть - использовать ее...
Записан

А птичку нашу прошу не обижать!!!
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #10 : 08-09-2003 15:48 » 

Цитата: Гром
Про рисование ты не говорил....
Перевести в граф режим терминал в *никс подобных стистемах по моему неудастся - только написав свою vga библиотеку - или если есть - использовать ее...
я НЕ говорил про граюические режимы, но во фре есть "игры", которые являются примерами программирования терминала через ncurces...
Записан
Гром
Птычк. Тьфу, птычник... Вот!
Готовлюсь к пенсии

il
Offline Offline
Пол: Мужской
Бодрый птах


« Ответ #11 : 08-09-2003 16:11 » 

Ну дык этого я не знаю... :oops:
Записан

А птичку нашу прошу не обижать!!!
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #12 : 09-09-2003 13:30 » 

Цитата
Он сначала буферезует ввод, сволочь, да и не так как надо работае

Ты меня пугаешь Ага Запомни: терминал != клава+монитор.
Для начала почитай man ncurses. И не жди что все будет понятно - это справочная дока, а не обучалка. Буферизация вывода и ввод одиночных символов - все это делает ncurses.
Несложные примеры прилогаются к дистрибутиву ncurses.

Цитата
А перемещаться через ANSI?? А если терминал ANSI не поддерживает?? А отслеживания ввода управляющих клавиш как предлагаешь сделать?? Мне IOCTL подавай, или типа того... Тем более как вводить по КЛАВИШАМ, а не по символам? (не через stdio).


Понятия "клавиша" там нет - ведь это терминал, а не клава - в обе стороны обмен идет _символами_. Терминальная программа одинакого работает на локальном компьютере, на терминале через com-порт (или модем) и сетевых соединениях (telnet,rlogin,ssh и т.п).
И как это - "не поддерживает ANSI"? Ansi совместим (по выводу) с vt100 и многими другими. Если и этого нет - то это "тупой терминал" (dumb) и ни каких окошек там не нарисуешь.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #13 : 09-09-2003 13:36 » 

RXL, да.... тогда мне, похоже самому писать Жаль ну ладно. Если чего пуного скажте - буду рад Ага
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #14 : 09-09-2003 13:41 » 

Зачем самому - того что есть разве мало?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
.
Молодой специалист

ru
Offline Offline
Пол: Мужской

« Ответ #15 : 09-09-2003 13:42 » 

RXL, мне нужен ввод, как в Bash, а вывод, как в mc Улыбаюсь  а mc  не на н-курсах написан Жаль
Записан
DeltaFlight
Гость
« Ответ #16 : 26-10-2003 20:39 » 

Ты бы пояснил конкретнее. Ввод как в bash? Может быть, readline поможет?
Записан
Frme
Гость
« Ответ #17 : 01-06-2005 13:44 » 

с чем-то подобным сам столкнулся:
через гетчар() считываю символы, анализирую их. у меня на машине что под иксами что из текстового режима все работает как надо, у коллеги нет. скорее всего разные коды для небуквенно-цифровых клавиш тому виной..
гдето читал что помочь может здесь анализ файла TERMCAP- он де содержит все настройки терминалов, но пока разобраться еще не получилось. Если кто уже разобрался с єтим - поделитесь плис исходником настройки терминала через TERMCAP.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines