Logotipo de Orbis Sapientia Elearning Services

Servicios de formación. Especialistas en E-learning.

Harbour. Imprimir en pantalla

Harbour es un lenguaje que hereda de Clipper en particular y XBase en general su sintaxis y posibilidades, permitiendo crear aplicaciones de consola (y otras). Este artículo “Harbour. Imprimir en pantalla”, muestra como lanzar información a la pantalla de nuestro ordenador.

Hoy en día, la era de las aplicaciones para tablets y móviles, el uso de las interfaces gráficas, con ratón (hace ya bastantes años) y táctiles, podemos pensar que una aplicación de consola no tiene lugar.

Sin embargo, nada más lejos de la realidad: en primer lugar, son muchas las aplicaciones que se usan en servidores para hacer X operaciones en el sistema. No se necesita una interfaz llamativa, sino liviana y rápida que haga su trabajo.

Muchas personas no tienen recursos para disponer de un equipo potente: una aplicación con una interfaz gráfica, es claramente más exigente en recursos.

Es evidente que dependiendo de la tarea de la aplicación, será necesario un tipo de interfaz u otra. Por otro lado, Harbour también puede dotar de interfaz gráfica a las aplicaciones realizadas con él.

Menciono aquí el artículo que publiqué en su día “Harbour. Clipper hoy en día,”, donde indicaba que en las aplicaciones para las que estaba orientado el lenguaje XBase y Clipper en particular, era tremendo ver a un usuario de estas aplicaciones, usando los accesos de teclas rápidas. Vaya, que tampoco es tan malo.

Entendiendo la interfaz de consola

La interfaz de una aplicación de consola o en modo texto se basa precisamente en eso, en secuencias de caracteres que se imprimen en pantalla en determinadas posiciones.

Dependiendo del sistema podemos dotar de diferentes tipos de letra a los caracteres, colores, etc.

El uso del ratón no está reñido con este tipo de aplicación, también es posible usarlo.

Como quiera que sea, para lograr crear un interfaz de este tipo, debemos ir situando caracteres en determinados lugares de la pantalla. Para eso disponemos de un sistema de coordenadas X e Y: filas y columnas.

Cada carácter que avanza en una misma línea (incluyendo los espacios en blanco), son columnas.

Una pequeña explicación

Primeramente, para imprimir en la consola o terminal, en pantalla, lo primero es tener claro sistema de coordenadas usado (y mencionado más arriba).

El eje de coordenadas comienza en la posición (0, 0): línea 0, columna 0. Sistema de coordenadas que, por otro lado, viene heredado del propio sistema para presentar una aplicación de consola.

En consecuencia, tomaremos como regla general que para mostrar un texto en pantalla indicaremos, implícitamento o no, el lugar desde donde se comenzará a mostrar datos.

Hablemos un poco del código que se encuentra expuesto más abajo:

En primer lugar, como tenemos que imprimir caracteres que no existen en inglés, requerimos el módulo que nos permite obtener el juego de caracteres que necesitamos (español en nuestro caso).

REQUEST HB_CODEPAGE_ESMWIN

Usamos un comentario. Como se irá viendo en esta serie de artículos, disponemos en Harbour de varias formas de crear comentarios. Seguidamente, hacemos uso del juego de caracteres requerido (español).
// Nos permite usar el juego de caracteres en español.
hb_cdpSelect( “ESMWIN” )

Limpiamos la pantalla. La dejamos vacía y asi estará libre de contenidos para imprimir lo que necesitemos. Situamos el cursor en la primera línea, primera columna del terminal.
Scroll() ; SetPos(0,0) // Limpia la consola.

Otro tipo de comentario. Acto seguido lanzamos por pantalla una cadena gracias al operador ?.
* ? y QOut imprimen en una nueva línea cada vez que se utilizan. Mueven el cursor una línea.”
? “¡Hola, mundo desde la posición actual del cursor con ?!”

Acto seguido imprimimos otro mensaje, esta vez con la función QOut().
QOut( “¡Hola, mundo desde la posición actual del cursor con QOut!” )

Finalmente, usando @… SAY, situamos diferentes cadenas en posiciones concretas de la pantalla o mejor dicho, del terminal.
@ 10, 1 SAY “Hola desde la fila 10 columna 1.”

@ 11, 5 SAY “Hola desde la fila 11 columna 5.”

Compilando...

Finalmente vamos a generar un ejecutable (Windows en este caso) para un sistema de 64 bits. Tal y como se ve en la captura, llamamos al comando hbmk2-x64. Nótese como anteponemos la ruta para alcanzar el comando. Si no queremos estar haciendo esto, añadiremos al PATH del sistema, la carpeta donde están estos comandos.

Este comando o su genérico hbmk2 dispone de varios argumentos:

  • Fichero con el código fuente: harbour.show.data.prg.
  • Opción -o. Necesaria para indicar a continuación el nombre del fichero ejecutable de salida.
  • Inmediatamente de la opción -o y sin espacios, indicamos el nombre del fichero de salida o ejecutable: harbour.imprimir.en.pantalla.exe.

¡Atención!

No es necesario indicar nombre para el ejecutable. Si no lo hacemos, se tomará el nombre del fichero con el código fuente pero ¡¡¡ sin extensión!!!

Harbour. Generando el ejecutable del programa

El resultado de ejecutar el programa generado: harbour.imprimir.en.pantalla.exe, podemos verlo aquí:

Harbour. Ejecución del programa para mostrar texto en la pantalla

Conclusión

Resumiendo. Considerar anticuada una aplicación en modo texto es normal aunque dependiendo del objetivo que se necesite.

¿Es eficaz? Por supuesto. Puede conseguir sin problemas su objetivo aunque sea “menos agradable a nuestra vista”. ¿Es efectivo? Si, desde luego. ¿Es eficiente? Totalmente, ya que incluso puede conseguir su objetivo con menos recursos aún.

Repito. Aún cuando Harbour puede generar aplicaciones con interfaz gráfica, como un digno heredero de Clipper, puede crear aplicaciones orientadas a bases de datos, eficaces, efectivas y desde luego, eficientes.

Nada más, un saludo y hasta otra.

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.

Logotipo de Orbis Sapientia Elearning Services

Protegemos tus datos

En este portal web procesamos datos personales como, por ejemplo, tus datos de navegación. Si sigues navegando por nuestro portal, nosotros y otras compañías seleccionadas, podrán instalar cookies o acceder a información no sensible de tu dispositivo con el objetivo de crear perfiles, personalizar contenidos, servir anuncios adaptados a tus preferencias y elaborar estadísticas. Es imprescindible para acceder al sitio web, aceptar:
Con este acto reconoces que has leído y comprendido todos ellos.
Algunas cookies son esenciales para la carga del portal y que puedas ver este mensaje por lo que ya han sido cargadas.
Si lo deseas, puedes eliminar y bloquear todas las cookies de esta web tal como se indica en las Políticas de cookies, aunque de hacerlo, el portal no funcionará correctamente.