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.
interfaces
command-line
GorillaApe
fonte
fonte
Respostas:
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
fonte
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".
fonte
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.
fonte