|
|||||
| El Amiga Me Encanta ha conseguido el permiso por escrito de IDG Comunications España para ofrecer los artículos de la revista Amiga World España. |
| PEQUEÑAS UTILIDADES | ![]() |
Por Alvaro F. Mingo VERIFYLos que hayan programado en otras máquinas con BASIC habrán notado la ausencia de un pequeño comando que facilita las tareas con ficheros: VERIFY. Esta instrucción permite comprobar la existencia de un determinado fichero en un determinado disco, y es necesaria cuando un programa usa ficheros de datos elegibles por el ordenador. Cuando se accede al fichero con un comando como LOAD, MERGE, CHAIN no hay problema, puesto que la no existencia del fichero provoca un mensaje de error 53 (File Not Found) que se puede desviar fácilmente con una instrucción ON ERROR. El problema surge cuando el programa accede al fichero con un APPEND (OPEN "A",#1,"NOMBRE"), puesto que si no existe el fichero, será creado, provocando una situación atípica que puede poner en jaque al ordenador, o simplemente llenar el disco con ficheros inútiles. Para evitar pues esta última situación he creado un pequeño subprograma que comprueba la existencia de ficheros. Para utilizarlo incluya el programa del listado 1 al principio del programa principal, y para comprobar la existencia de un fichero introduzca su nombre en una cadena, por ejemplo E$, y pásela al programa: CALL Veryfy (E$). si cuando el programa devuelva el control, E$="", entonces dicho fichero no existe. Al contrario, si E$ ="NOmbreFichero" entonces el fichero si existe. El funcionamiento del programa es muy sencillo. Primero realiza un APPEND del fichero que tiene que investigar, luego lo cierra y lo vuelve a abrir, pero esta vez para la lectura: INPUT. Si cuando lo lea verifica que no contiene nada entonces deduce que dicho fichero no existía y lo borra, colocando F$="". Si no le gusta que sea F$="" cuando no exista, puede hacer que F$ sea igual a cualquier otra cosa, por ejemplo: F$="No existe", de esta manera el subprograma devolverá "No existe" en la variable dek fichero cuando no se encuentra en el disco. Observe la estructura del bucle: se repetirá hasta que encuentre algún dato (entonces F$ existe) o hasta que llegue al final del fichero sin encontrar nada (luego F$ no existe), ambas posibilidades son estudiadas al final con un IF que coloca la respuesta en la propia variable para ahorrar memoria. Por esta razón, si le interesa saber el nombre del fichero aunque no exista, es una buena idea duplicarlo antes de procesarlo con este programa.
SITUAR Es frecuente que al programar se necesite representar datos en una posición concreta de la pantalla. En un ordenador normal esto es muy sencillo, puesto que el formato de la pantalla no cambia. Pero en un Amiga es diferente. Por ello he programado una pequeña utilidad para situar un texto en las posiciones más frecuentes: Arriba, Abajo, Izquierda, Derecha y Centro. El formato es el siguiente: situar [Cadena], [Opciones: HDIVAE0]
Pueden incluirse hasta tres datos desordenados en las opciones, uno de horizontalidad, otro de verticalidad y otro para que vuelva a colocar el cursor en la posición original (O). Por ejemplo: situar "Hola", "HE" esto coloca Hola en el medio de la primera línea y el cursor se mantendrá al lado de Hola. Para forzar que vuelva a su posición original deberíamos haber puesto la opción O, es decir: situar "Hola", "HEO". Si colocan varios datos de horizontalidad o de verticalidad, el programa activará el que se encuentre más adentrado en el programa. Por ejemplo, situar "Hola", "HI" o situar "Hola", "IH" producirá un alineamiento a la izquierda (I). Veamos cómo funciona el programa:
ENMARCAR Siguiendo la tónica marcada por el anterior programa, he realizado esta rutina para "embellecer" la visualización de los datos. Si ha intentado alguna vez encuadrar texto, habrá visto que no es una tarea muy amena. Hay que calcular el recuadro en el que está comprendido el texto. Para facilitar esta tarea y evitarle el trabajo engorroso puede emplearse la rutina "caja" para enmarcar texto. El formato es parecido al del comando PRINT. Para encuadrar la cadena "HOLA" se puede hacer: caja "HOLA", o E$="HOLA": caja E$. Como respuesta, el ordenador imprimirá HOLA en la posición del cursor, y lo encerrará dentro de un rectángulo. A continuación, el funcionamiento del programa, línea a línea:
También se podría introducir una pequeña modificación para determinar el color del recuadro. Por ejemplo permanentemente, sustituyendo la penúltima línea por: LINE (x1%,y1%)-(x2%,y2%),2,B Con lo que las líneas se trazarían en negro. También, se podría añadir una opción de color, como en el listado 4.
De esta forma, las instrucciones serían:
Usando un método parecido al de la rutina se podría incluso indicar el color del texto. ¿Por qué no lo intenta? CONCLUSIÓN El listado 5 es una muestra que ilustra estas pequeñas utilidades. Sirve como demostración sobre la utilización al máximo de las posibilidades de las rutinas, indicando el método que se debería seguir para su inclusión en los programas. No olvide que al principio del programa deberán figurar las tres subrutinas de los listados 1, 2 y 3. Si ya las tiene almacenadas en disco en formato ASCII del Basic (grabando como SAVE"nombre",A), puede cargarlas en memoria una detrás de otra con el comando MERGE.
|
| Envía esta página web a un amigo: Esta opción está desactivada temporalmente, rogamos disculpen las molestias |
|