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
interfaces
command-line
GorilaApe
fuente
fuente
Respuestas:
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
fuente
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".
fuente
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.
fuente