¿Cómo funcionan las interfaces de usuario de texto (TUI)?

8

Recientemente me asignaron para portar un viejo programa COBOL. Estoy acostumbrado a las GUI, y no puedo entender cómo funciona una TUI. Busqué mucho a través de Google pero no pude encontrar algo.

Sabía que las aplicaciones de consola podían salir línea por línea, pero ¿cómo se dibujan los colores, etc. en la pantalla del terminal? ¿Cómo se dibuja todo esto? ¿Los terminales lo soportan de alguna manera? ¿Hay un estándar? Estoy realmente confundido

GorilaApe
fuente
1
¿Qué plataforma (s) usarás?
Jon Onstott
Pruebe ui.stackexchange.com
Maniero

Respuestas:

7

Estoy bastante seguro de que su respuesta variará según la plataforma aquí. Hay muchos tipos diferentes de terminal / consola y para más de un estándar para escribir en él. La mayoría de ellos que he visto usan algún tipo de secuencia de escape (por ejemplo: ANSI char escape para dos, YMMV) donde envías un escape especial para interrumpir la escritura en la pantalla y luego puedes mover el cursor, cambiar los colores, etc.

Si está escribiendo algo literalmente para terminales tontas, entonces probablemente usará algo como https://secure.wikimedia.org/wikipedia/en/wiki/Ncurses

Cuenta
fuente
3
Los servidores de IBM tienden a usar el protocolo 3270 y 5250 sobre telnet. Actualizaciones orientadas a la página.
1
Si está transfiriendo un programa COBOL / CICS a una plataforma de rango medio, entonces maldiciones es una buena sugerencia. La pregunta realmente no nos dice lo suficiente.
Jeremy
Muchas otras plataformas ofrecen o usan un protocolo compatible con VT-100 o VT-200, por lo que usarán los códigos comunes "ANSI".
greyfade
@ Thorbjørn Ravn Andersen - Sí. Y si ves algo llamado "Terminal virtual de Novell" además de eso, corre ... corre como el infierno
Tim Post
@Tim, bah, enfrenta los desafíos en lugar de huir cobardemente.
0

El término genérico para ese tipo de interfaz es "línea de comando". Probablemente harás mejores búsquedas en Google para eso que para la "interfaz de usuario de texto".

Dan Ray
fuente
44
No, una utilidad de línea de comandos solo obtiene stdin y argumentos y puede generar stdout y stderr y un código de retorno. Una TUI, por otro lado, puede actualizar cada posición en la pantalla e intercepta todas las entradas de terminal una tecla a la vez. en.wikipedia.org/wiki/Text_user_interface
Jeremy
0

No te preocupes, hay cientos de estándares para elegir :)

Lamentablemente, me siento más cómodo con las aplicaciones basadas en texto y en consola que sus hermanos de ventana gráfica más antiguos. Demasiados días en FidoNet, me temo.

Lo primero que haría es aprender algunos códigos VT100 de la antigua compañía Digital. Puede que nunca escriba aplicaciones en códigos VT100 (probablemente desaconseje), pero es una introducción muy buena y simple para controlar la matriz de la consola.

Las bibliotecas, como las maldiciones, envuelven estos códigos de control (y muchos otros códigos de terminal de estilo) y los resumen para que los usuarios puedan iniciar sesión a través de sus propios terminales. Cosas como VT100 pueden incluso hacer impresiones remotas (locales) con las que todavía luchamos hoy en RDP.

Para empeorar las cosas para usted, los sistemas de IBM no utilizan control basado en líneas o caracteres, sino protocolos basados ​​en pantalla y bloque. Ejemplos son los protocolos de terminal 3270 y 5250 que por falta de un mejor acto de comparación en la arquitectura de solicitud | respuesta piensan HTTP. Tan capaces como son, son un verdadero PITA IMNSHO con el que trabajar y deberían ser su propia pregunta por separado.

Peor que eso sería escribir una aplicación de consola en un mundo DOS / Windows. Responda con su plataforma de desarrollo de destino.

Jé Queue
fuente