Como funcionam as interfaces de usuário de texto (TUI)?

8

Recentemente, fui designado para portar um programa COBOL antigo. Estou acostumado a GUIs e não consigo entender como uma TUI funciona. Pesquisei bastante no Google, mas não consegui encontrar algo.

Eu sabia que os aplicativos de console podiam produzir linha por linha, mas como as cores etc. são atraídas para a tela do terminal? Como tudo isso está sendo desenhado? Os terminais suportam isso de alguma forma? Existe um padrão? Estou realmente confuso.

GorillaApe
fonte
1
Quais plataformas você usará?
Jon Onstott
Tente ui.stackexchange.com
Maniero

Respostas:

7

Certamente, sua resposta varia de acordo com a plataforma aqui. Existem muitos tipos diferentes de terminal / console e, para muitos, mais de um padrão para gravação nele. A maioria deles já vi usar algum tipo de sequência de escape (por exemplo: ANSI char escapes para dos, YMMV), onde você envia um caractere de escape especial para interromper a gravação na tela e mover o cursor, alterar cores etc.

Se você estiver escrevendo algo literalmente para terminais burros, provavelmente usará algo como https://secure.wikimedia.org/wikipedia/en/wiki/Ncurses

Conta
fonte
3
Os servidores IBM tendem a usar os protocolos 3270 e 5250 em cima do telnet. Atualizações orientadas à página.
1
Se ele estiver portando um programa COBOL / CICS para uma plataforma de médio porte, xingar é uma boa sugestão. A pergunta realmente não nos diz o suficiente.
Jeremy
Muitas outras plataformas oferecem ou usam um protocolo compatível com VT-100 ou VT-200, portanto, eles usam os códigos "ANSI" comuns.
greyfade
@ Thorbjørn Ravn Andersen - Sim. E se você vir algo chamado "Terminal Virtual da Novell" em cima disso, corra .. corra como o inferno
Tim Post
@ Tim, bah, encare os desafios em vez de fugir covardemente!
0

O termo genérico para esse tipo de interface é "linha de comando". Você provavelmente fará melhor pesquisa no Google do que na "interface do usuário de texto".

Dan Ray
fonte
4
Não, um utilitário de linha de comando apenas obtém stdin e argumentos e pode apenas gerar stdout e stderr e um código de retorno. Uma TUI, por outro lado, pode atualizar todas as posições na tela e intercepta todas as entradas do terminal, uma tecla de cada vez. en.wikipedia.org/wiki/Text_user_interface
Jeremy
0

Não se preocupe, existem centenas de padrões para escolher :)

Infelizmente, sinto-me mais à vontade com aplicativos baseados em texto e console do que seus irmãos mais velhos em janelas gráficas. Muitos dias no FidoNet, eu temo.

A primeira coisa que eu faria é aprender alguns códigos VT100 da antiga empresa Digital. Você nunca pode escrever aplicativos nos códigos VT100 (provavelmente desaconselha), mas é uma introdução muito boa e simples ao controle da matriz do console.

Bibliotecas como maldições agrupam esses códigos de controle (e muitos outros códigos de terminal de estilo) e os abstraem para que os usuários possam efetuar login através de seus próprios terminais. Coisas como o VT100 podem até fazer impressão remota (local) com a qual ainda lutamos hoje em RDP.

Para piorar as coisas para você, os sistemas IBM usam não controle baseado em caracteres ou em linha, mas protocolos baseados em tela e bloco. Exemplos são os protocolos de terminal 3270 e 5250 que, por falta de uma melhor comparação, atuam na arquitetura de resposta de solicitação | pensam em HTTP. Por mais capazes que sejam, são uma verdadeira IMNSHO da PITA com a qual trabalhar e devem ser sua própria pergunta separada.

Pior do que isso seria escrever um aplicativo de console no mundo DOS / Windows. Responda com sua plataforma de desenvolvimento de destino.

Jé Queue
fonte