Una solución sencilla, ¿verdad? Los problemas de este tipo siempre tienen solución si
conocemos bien la lista de instrucciones y nos paramos a pensar un poco. Para casi todas las
necesidades hay casi siempre al menos una instrucción; cuanto mayor es la experiencia en
programación, más inmediatas son las soluciones.
Vamos con otro requisito del programa: grabar los valores de las variables para poder cargarlos
más tarde. En la parte 7 del 'Curso de introducción' hemos explicado cómo grabar programas
(con la orden SAVE). Pero el programa no es más que la herramienta que nos permite captar y
manipular los datos; cuando grabamos el programa sólo estamos guardando la herramienta, no
los valores de las variables.
Así pues, tenemos que escribir una sección del programa que grabe los valores de las variables.
Para ello crearemos un 'fichero de datos'.
Lo primero es abrir (OPEN) un fichero en dirección de salida (OUT) dándole el nombre de
'datos'. Después escribiremos (WRITE) los valores de las variables NOMBRES(x) y TELS(x), de 1
a 100, en el fichero; finalmente, cerraremos (CLOSE) el fichero y retornaremos (RETURN) al
menú. Pondremos esta rutina en las líneas 350 y siguientes. Para no tener que escribir los
números de línea, ejecutaremos la orden
AUTO
350
que inicia la numeración automática de las líneas a partir del número 350:
350
OPENOUT
360
FOR
x=1
370
WRITE
#9,NOMBRE$(x),TEL$(x)
380
NEXT
390
CLOSEOUT
400
PRINT"Fin de la grabacion de los datos"
410
RETURN
Cuando haya terminado de teclear la línea 410 y haya pulsado [RETURN], pulse [ESC] para
interrumpir la función AUTO.
Como tenemos una rutina más, tendremos que poner otro número de línea en la instrucción
ON el GOSUB de la línea 100. Para ello vamos a corregir (editar, EDIT) la línea 100:
100
ON el GOSUB
A partir de ahora, cada vez que elijamos la opción 4 del menú, el programa grabará el fichero de
datos en el disco.
Observe la línea 370, en la que se escriben los valores de NOMBRE$(x) y TEL$(x) en el disco: la
expresión #9 que aparece después de WRITE es un 'indicador de canal' que especifica a qué
canal debe el ordenador enviar los datos. El ordenador maneja 10 canales:
Los ocho primeros (#0 a #7) dirigen los datos a la pantalla [bien a la pantalla completa, bien a
alguna ventana (WINDOW)].
El canal #8 es el de la impresora.
Finalmente, el canal #9 es el que conecta el ordenador con la unidad de disco; éste es el que
utilizamos en la instrucción 370.
"datos"
TO
100
120,210,270,350
Manual de Amstrad CPC 6128 (revisión 2008) - Página 104