Inicio
LibroDos 1.0.0.0

Ventana de LibroDos

-------------------------------

Descargar

-------------------------------

IMPORTANTE

Este programa es gratuito (Freeware). Tanto él como el código que genera se ofrecen sin ningún tipo de garantías. Son de su entera responsabilidad los perjuicios, deterioros, pérdidas o daños que pudieran darse tras su ejecución.

No se permite cambiar el contenido del ejecutable. Puede emplearlo libremente tanto para uso particular como comercial, y también distribuirlo siempre que sea íntegramente (con todos los archivos que componen el paquete).

DESCRIPCION

Realiza dos cometidos.

El primero es el de exportar el contenido de un archivo de texto ASCII a otro, también de texto plano, pero justificado y los caracteres por línea deseados. Es la opción por defecto al arrancar el programa.

En segundo lugar, construye libros digitales para ser vistos en pantallas CMD. Así, a partir de un archivo de texto ASCII produce el código en lenguaje C que, tras compilarse, crea un ejecutable de su contenido dispuesto en ventanas MS DOS de 25 líneas, con el sistema de navegación entre ellas incluido.

El mejor ejemplo de ambas funciones lo tiene en estas ayudas (en formato texto o la incluida en el EXE), que han sido creadas al cien por cien con LibroDos.

HISTORIA

La idea surge ante la necesidad de acompañar los programas con una ayuda o descripción de ellos (externa o incluida en su código). Lo habitual es hacerlo con un archivo ASCII (titulado LEEME.TXT, README.TXT, AYUDA.TXT, etc.) y/o programar un módulo que abre uno de esos archivos externos y lo lee.

Es muy laborioso hacerlo manualmente, para obtener buenos resultados estéticos. Hay que controlar la longitud de cada línea, su número por pantalla, la conversión de los caracteres especiales para que sean leídos en ventanas CMD...

Qué fácil sería todo si hubiera un programa que formateara las líneas del archivo fuente para ajustarlas a los 80 caracteres del ancho de la pantalla, que las dispusiera en 25 filas, que hiciera las ventanas necesarias hasta completar todo el texto y que tuviera un sistema de navegación secuencial de la primera a la última... Y sería perfecto si ese texto se exportara a un archivo ASCII que pudiera leerse directamente o a través de otros programas...

Me surgió el reto de crearlo. Y aquí está el resultado.

EVOLUCION

La primera versión creaba pantallas con el texto indentado hacia la izquierda.

En la segunda el texto se justificaba a las 80 columnas, sólo para pantallas CMD - MS DOS.

En la tercera se podía exportar el texto justificado a un archivo ASCII con las opciones de ajustar el margen izquierdo y el ancho.

En la actual es posible justificar el texto a la izquierda, a la derecha, a ambos lados y centrarlo. También se pueden introducir comandos en el archivo fuente.

Como conté arriba, quería hacer ayudas para incluirlos en otros EXE. Una vez terminada la primera versión comprobé que también sirve para hacer libros digitales MS DOS para ser leídos en Windows, y ello da nombre al título del programa: "LibroDos".

La función que crea el código en C debe compilarse. Está pensada para programadores.

Mandar el texto formateado a un archivo ASCII es para todos los públicos. Se pueden ajustar las línas de manera semejante a como lo hacen los editores de texto enriquecido, pero sin aumentar el peso del resultado.

En la distribución se incluyen dos archivos; "EJEMPLO-FUENTE.TXT" que tras procesarse con "LibroDos" da como resultado "EJEMPLO-FUENTE.TXT".

INSTALACION

No es necesaria ninguna instalación, basta con descomprimir los archivos y ya están listos para usarse.

DESINSTALACION

Sólo hay que eliminar los ficheros.

USO

Si lo llama a través de la línea de comandos puede pasarle como argumentos el nombre del archivo a convertir y el destino. Si lo hace sólo con el primero, el programa lo aprovecha para rellenar el segundo con el nombre de un fichero que no exista (le va añadiendo al nombre el sufijo "_XX", en donde XX es un número secuencial del "01" en adelante).

Se anula el nombre del archivo fuente si no se encuentra o no se puede abrir.

También puede arrancarlo desde Windows haciendo doble clic sobre su icono.

Para no teclear los nombres de los ficheros, pinche con el botón izquierdo del ratón sobre el archivo que desea procesar y arrástrelo y suéltelo sobre el icono de "LibroDos.exe"; con ello se arranca el programa con los nombres ya introducidos del fichero fuente y del destino que genera el programa.

A las opciones del Menú que aparecen se accede a través de las siguientes teclas:

"F1. Ayuda."

"F2. Tipo de archivo destino: TEXTO / C"

La opción TEXTO exporta a un archivo ASCII. La C lo hace a código para crear pantallas ejecutables.

"F3. Archivo de texto a procesar:" Para ingresar o cambiar el nombre del archivo origen.

"F4. Archivo destino:" Para ingresar o cambiar el nombre del archivo final.

"F5. Espacios de indentación del principio de párrafo:" Son los que hay delante de la primera línea del párrafo, pueden ser de 0 a 5 caracteres. Por defecto es 2.

"F6. Tipo de párrafo a construir: LINEA / BLOQUE"

La opción LINEA crea un párrafo por cada retorno de carro que encuentra. La BLOQUE lo hace con el texto que hay entre dos líneas vacías.

"F7. Separación de los párrafos: SIMPLE / DOBLE"

En la SIMPLE no hay fila en blanco entre los párrafos. En la DOBLE se inserta una entre ellos.

Si cada línea del archivo origen es un párrafo completo, y no hay una en blanco entre ellas, debe elegir la opción LINEA para que no haga un sólo párrafo con todo el texto.

El tamaño máximo de un párrafo es de 64 Kb. (65535 caracteres.)

"F8. Tipo de presentación del texto: JUSTIFICADO / CENTRADO / IZQUIERDA / DERECHA"

"JUSTIFICADO" enmarca el texto en el ancho de la línea, en "IZQUIERDA" las letras se indentan en el margen derecho, en "CENTRADO" lo centra, y en "DERECHA" se agrupa todo el texto junto al margen derecho. A través del Menú, los dos últimos sólo se admiten con el parrafo a construir tipo LINEA.

Las opciones F9 y F10 son distintas según sea el tipo de archivo destino.

"F9. Color de letra y fondo." Sólo disponible en la opción de salida a C. Se introduce el color pulsando el número o la letra de los indicados. Para ver como serán en la pantalla que creemos, se cambia el color de la ventana del Menú a los del fondo y letra elegidos.

"F9. Espacios del margen izquierdo:" Sólo disponible en la opción de salida a TEXTO. Es la distancia que hay desde el marco izquierdo al texto.

"F10. Color de letra y fondo de la línea 25 (la de navegación)." Sólo disponible en la opción de salida a C. Permite personalizar los colores de la última línea de la pantalla. Como la opción anterior, se cambia el color de esta línea a los del fondo y letra elegidos.

"F10. Margen derecho:" Sólo disponible en la elección de salida a TEXTO. Es el ancho de los caracteres de texto que ocupan cada fila. Va desde el límite derecho del margen izquierdo al final de la línea.

"F11. Procesar." Ejecuta el programa cuando todos los datos se han completado.

"<ESC> Abortar el programa." Para salir en cualquier momento.

FUNCIONES INCLUIDAS EN CADA ARCHIVO GENERADO

-"int pantallaX(int totalPan)", es un procedimiento por pantalla creada en donde "X" es un número correlativo, "totalPan" es el número total de pantallas. Junto al de la que estamos usando sirve para informarnos: en la esquina superior izquierda del marco de la ventana aparece el texto "Pantalla X de Y", en donde "X" es la actual e "Y" la última.

"int pie_(void)" es usado por las anteriores.

-El procedimiento "unsigned int tomaTecla_(void)", unido a "int salir(int npan)" devuelven un valor según sea la tecla pulsada. Se usan para navegar y salir del programa.

-"void cursor_(int tipo)", oculta el cursor si "tipo" es 0, y lo muestra si es cualquier otro número. Se emplea para ocultarlo mientras se leen las ventanas.

-"void textbackground(int nuevoColor)" Pone el color de fondo.

-"void textcolor(int nuevoColor)" Pone el color del texto.

-"void leePantallas(void)", permite ejecutar las pantallas y navegar por ellas.

-"int main(void)", es necesario para crear un programa independiente (para hacer un libro digital, para probar las pantallas antes de usarlas en otro programa en C, etc.). Hay que eliminarlo al incluir el código en otra aplicación y hacer entonces la llamada a "leePantallas();" desde el lugar que deseemos.

En los procedimientos se incluyen comentarios.

USO DEL CODIGO FUENTE GENERADO

Ha sido compilado y probado con MinGW GCC 5.1.6 de 32 bits (con el IDE wx-DevC++). Si emplea otro compilador quizás deba cambiar alguna parte del código.

COMANDOS

Se pueden incluir en el archivo fuente algunas ordenes que modifican el procesamiento del texto. Tienen el formato: "<$XY>" (sin las comillas) en donde $ es el signo dólar, X e Y son dos letras mayúsculas. Para que el comando no sea ignorado es importante que siempre estén en mayúsculas .

Olvídese de estas ordenes si está de acuerdo con que todo el texto sea uniformemente formateado según las opciones del Menú. Estos comandos sólo sirven para que algún fragmento se comporte de manera diferente.

Todos ellos deben estar al principio de una línea por delante de lo que deseemos que hagan, y no contener ningún otro texto a continuación del suyo.

Los comandos pueden estar precedidos y seguidos sólo por caracteres de espacio o tabulador, y lo mismo deben ser las líneas que haya por delante y por detrás a la suya.

Son de dos tipos: los que cambian en cualquier punto alguna de las opciones elegidas en el Menú de arranque, y otros nuevos. Empecemos por los segundos.

COMANDOS NUEVOS

1. Comando de centrar texto.

Si desea que una sola línea esté centrada (como las del inicio de esta ayuda), debe colocar una por delante de ella (o varias si están vacías o con espacios en blanco) con el símbolo de (C)entrar (L)ínea: "<$CL>", sin las comillas. Como hemos dicho, es fundamental que la línea no contenga ningún texto además de esos caracteres (salvo espacios en blanco). Esta orden sólo centra la línea siguiente.

2. Comando de salto de línea.

Son ignoradas las líneas del archivo origen que contengan sólo espacios, caracteres de tabulador, o las vacías. Por tanto, si quiere que el programa incluya una fila en blanco extra ha de poner una línea por delante el símbolo (sin las comillas): "<$NL>" de (N)ueva (L)ínea.

3. Comandos de comentario.

A diferencia del resto, que son simples (sólo hay una orden para ejecutarlos), éste es doble. Tiene una parte que inicia el bloque de los comentarios y otra que lo termina. Todo el texto que vaya de una a otra es ignorado (incluido el que esté en su misma línea y siga a cualquiera de las dos ordenes).

-El símbolo "<$PC>" de (P)rincipio de (C)omentario, lo abre.

-La orden "<$FC>" (F)in de (C)omentario, lo cierra.

No se procesará el resto del archivo si se coloca el signo de apertura de comentario y se olvida el de cierre.

4. Comando de insertar código.

-Orden "<$$$>" Sólo es considerada cuando exportamos a C (se omite cuando es a texto). Debe ir inmediatamente por delante de la línea de código que inserta.

Es el único que tiene tres signos de dólar, sin ninguna letra máyuscula. El texto que va en la línea siguiente a la suya se imprime sin hacerlo visible. Con ello podemos introducir en el resultado fragmentos de código, está pensado fundamentalmente para cambiar los colores del texto y del fondo.

Estudiemos ahora las que modifican las opciones del Menú.

COMANDOS DE OPCIONES DEL MENU DE ARRANQUE

Como en los anteriores, deben ir sólos y una línea por encima del lugar en que deseemos que actúen.

"F5. Espacios de indentación del principio de párrafo"

Comando que añade espacios para tabular la primera línea del párrafo: "<$TT> X" (T de Tabulador) en donde "X" es el número deseado. Puede tener cualquier valor, no como en el Menú incial en donde no debe superar a 5. El programa se detiene e imprime un mensaje de eror en el archivo destino si ese número no permite que el texto útil de la primera línea llegue a 30 caracteres. Si es negativo se conserva el valor prevío.

"F6. Tipo de párrafo a construir: LINEA / BLOQUE"

-Comando de hacer un párrafo por línea encontrada: "<$PL>" de (P)árrafo por (L)ínea.

-Comando de hacer un párrafo del texto que haya entre dos líneas en blanco: "<$PB>" de (P)árrafo por (B)loque.

"F7. Separación de los párrafos: SIMPLE / DOBLE", puede cambiarla en cualquier momento introduciendo en el texto una línea con uno de los comandos siguientes, y que estará activo hasta que no sea anulada por el otro.

-Comando de párrafo simple, hace que los párrafos vayan contiguos: "<$PS>" para (P)árrafo (S)imple.

-Comando de separación de los párrafos con una línea en blanco entre ellos: "<$PD>" para (P)árrafo (D)oble.

"F8. Tipo de presentación del texto: JUSTIFICADO / IZQUIERDA / CENTRADO / DERECHA"

Orden de "JUSTIFICADO" a la izquierda y a la derecha: "<$JJ>".

Orden de presentación a la "IZQUIERDA": "<$II>".

Orden de presentación CENTRADO: "<$CC>". Este comando es complementario al visto más arriba de centrar línea ("<$CL>"), con la diferencia de que éste centra todo el texto que recibe hasta que encuentre una de las otras ordenes de presentación aquí descritas, y el otro lo hace sólo con la línea siguiente.

Orden de presentación a la "DERECHA": "<$DD>".

"F9. Espacios del margen izquierdo"

Sobre el valor elegido en el Menú inicial, permite añadir o disminuir espacios. Si es negativo se considera que es 0. El programa se detiene e imprime un mensaje de eror en el archivo destino si ese número no permite que el texto útil de las líneas lleguen a 35 caracteres.

Orden de margen izquierdo: "<$MM> X" (M de Margen) en donde "X" es el número deseado.

"F10. Margen derecho"

A partir del valor elegido en el Menú inicial, se puede disminuir el ancho. Si es negativo se conserva el valor inicial. El programa se detiene e imprime un mensaje de eror en el archivo destino si ese número no permite que el texto útil de las líneas lleguen a 35 caracteres o cuando el nuevo número del ancho sea superior al del Menú inicial.

Orden de margen derecho: "<$AA> X" (A de Ancho) en donde "X" es el número deseado.

RESUMEN DE LOS COMANDOS POR ORDEN ALFABÉTICO

-"<$$$>" La línea de código siguiente se imprime sin modificar y debe ir inmediatamente por delante de ella. Sólo se utiliza cuando es para exportar a C.

-"<$AA> X" (A)ncho. Coloca el margen derecho. "X" es el número.

-"<$CC>" Texto centrado.

-"<$CL>" (C)entra la (L)ínea siguiente.

-"<$DD>" Texto justificado a la derecha.

-"<$FC>" (F)in de (C)omentario, lo cierra.

-"<$II>" Texto justificado a la izquierda.

-"<$JJ>" Texto justificado a ambos lados.

-"<$MM> X" (M)argen izquierdo. "X" es el número.

-"<$NL>" (N)ueva (L)ínea en blanco.

-"<$PB>" (P)árrafo por (B)loque. Hace un párrafo con el texto que haya entre dos líneas en blanco.

-"<$PC>" (P)rincipio de (C)omentario, lo abre.

-"<$PD>" (P)árrafo (D)oble. Separa los párrafos con una línea en blanco entre ellos.

-"<$PL>" (P)árrafo por (L)ínea. Hace un párrafo por línea encontrada.

-"<$PS>" (P)árrafo (S)imple. Hace que los párrafos vayan contiguos.

-"<$TT> X" (T)abulador de principio de línea. "X" es el número.

MICELANEA

Al producir el código C se cambian los caracteres ASCII especiales para que puedan ser leídos en MS DOS. No modifica ninguno cuando la salida es a archivo de texto.

Ha sido compilado y probado con Windows de 32 bits.

Se suprimen los espacios y tabuladores de principio y fin de línea, así como los caracteres en blanco repetidos, excepto los que estén en el interior de un texto que se vaya a centrar.

El programa justifica las líneas insertando espacios en blanco extra que hacen el relleno hasta el tope del ancho que hayamos elegido. Para hacer la presentación más estética, en una fila del párrafo lo hace empezando por la izquierda y en la siguiente por la derecha, para volver a la izquierda, y así sucesivamente hasta el final.

No se imprime una línea en blanco si coincide con la primera de la pantalla.

En www.miRepisa.com puede encontrar actualizaciones y otros programas útiles.

-------------------------------

Descargar

-------------------------------


Creada con HazHtml el 30-01-2012 a las 04:57:13 horas.