El siguiente programa calcula la media de cualquier
tabla de frecuencias introducida por teclado (desconociendo a priori cuántos valores hay, pero con un valor centinela)
No es necesario realizar la tarea tediosa de introducir por teclado cientos
o miles de valores para procesarlos: para eso están los archivos o ficheros
en general y, en particular, en esta sesión nos centraremos en los archivos
de texto.
En primer lugar, para utilizar un fichero de texto en un programa,
hay que escribir los datos en el fichero Y DARLE UN NOMBRE AL
FICHERO
(todo esto puede hacerse por ejemplo
usando
el
Bloc
de Notas
de Windows).
Para entender cómo se manejan archivos de texto en un programa hay que
tener en cuenta los siguientes aspectos:
- Cada línea de un fichero de texto es una secuencia de
caracteres (un string) y está marcada
al final por un caracter especial llamado MARCA FIN DE LINEA (EOLN)
- El final de un fichero está marcado por un carácter especial
que se llama MARCA FIN DE FICHERO (EOF)
Por ejemplo, el fichero valores.txt en realidad se representa internamente
de la siguiente manera:
y el fichero valoresyfrecs.txt de esta:
Para poder utilizar los datos de estos tipos de ficheros como entrada
en un programa hay que llevar a cabo los siguientes pasos:
- Declarar una variable en el programa de tipo "archivo de texto"
- Asociar el nombre de un fichero de texto almacenado en una unidad de
disco a esa variable
- Abrir el archivo para lectura
- Leer los datos del archivo.
- Cerrar el archivo
Ejemplo de programa que lee el valor de la primera línea del fichero "valores.txt"
interpretándolo como un valor entero:
Observar que se ha utilizado la sentencia readln de
una forma distinta a como se ha usado hasta ahora: si queremos
que los datos que se leen no vengan del teclado y provengan
de un fichero, el primer parámetro de readln debe ser el fichero de entrada.
Este otro ejemplo lee la primera línea del fichero "valoresyfrecs.txt" y
asigna a una distinta variable cada valor en la línea del fichero
de texto
- readln(<variable_fichero>, <lista-de-variables-de-entrada>)
Lee datos de una línea del fichero, los asigna a las variables de
la lista y salta a la siguiente línea.
- read(<variable_fichero>, <lista-de-variables-de-entrada>)
como readln, pero no avanza a la siguiente línea del fichero
Para leer datos de ficheros utilizando bucles, es muy útil la función
eof(<variable_archivo>), una FUNCIÓN
BOOLEANA que
devuelve TRUE cuando el puntero está colocado en la marca de fin
de archivo y
devuelve FALSE en otro caso
También se puede escribir información en un fichero de texto, siguiendo
un proceso parecido a cómo se escribe información en la pantalla mediante
cadenas de texto. Para ello, hay que seguir siempre los siguientes pasos:
- Declarar una variable de tipo fichero de texto
- Asignarle un nombre de fichero.
- Abrir el fichero para escritura
- Escribir las cadenas de texto que se deseen
- Cerrar el fichero.
|