Anterior | Superior | Siguiente

Guía de referencia básica de Ada 95

Ficheros de texto.

Estructura.

La estructura de un fichero de texto está formada por una secuencia de caracteres terminada por una marca de fin de fichero y jalonada con marcas que señalan los finales de línea y página. Al igual que en la entrada/salida por terminal, los componentes de esta secuencia pueden ser interpretados como literales de diversos tipos, no sólo Character o String.

La librería Text_IO.

Las operaciones básicas para manejar ficheros de texto se encuentran definidas en la librería estándar Text_IO, que habrá que incluir en la cláusula de contexto de un programa que pretenda usarlas, como se decribe para la entrada/salida por terminal, incluyendo la instanciación de los paquetes adecuados si se pretende escribir o leer de un fichero elementos que no sean de tipo Character o String.

Declaración.

Para poder usar ficheros de texto se deben declarar en el programa variables de tipo File_Type. Estas variables se conocen como ficheros lógicos o, simplemente ficheros, en oposición a los ficheros externos a los que hacen referencia. El programa manipula los ficheros externos a través de los ficheros lógicos.

Fichero1 : File_Type;
Fichero2 : Text_IO.File_Type;

En este caso, se declaran dos ficheros de texto. La forma usada para Fichero2 sólo es necesaria, con el fin de evitar confusiones, si en el mismo ámbito se están usando otros tipos de ficheros, además de los de texto.

Creación, apertura y cierre.

Antes de poder hacer transacciones con una variable fichero debe asociarse con un fichero externo, esto se puede hacer con los procedimientos Create y Open. El primero sirve para crear y abrir un fichero y el segundo para abrir un fichero que ya existe. Ambas operaciones admiten hasta cuatro parámetros:

File es la variable fichero (fichero lógico).
Mode es el modo de apertura (puede tomar los valores: In_File , Out_File o Append_File).
    In_File abre el fichero en modo lectura.
    Out_File abre el fichero en modo escritura (si el fichero ya existe, se vacía). Es el modo por defecto en Create.
    Append_File abre el fichero en modo escritura para añadir texto al final de un fichero existente.
Name es una ristra de caracteres (String) que representa el nombre del fichero externo.
Form generalmente no se usa, es un parámetro que depende del sistema y puede servir para cosas como proteger el fichero con una contraseña.

Create(Fichero1, Name => S1);
Open(Fichero2, In_File, "c:\temp\ejemplo.txt");

La primera línea del ejemplo crea un fichero físico tomando como nombre el valor de la string S1 y lo abre en modo escritura asociándolo a la variable Fichero1; la segunda línea abre en modo lectura un fichero existente llamado "c:\temp\ejemplo.txt" y lo asocia a Fichero2.

Los errores que pudieran producirse al intentar abrir un fichero pueden controlarse mediante excepciones.

Si en Create se da como nombre del fichero físico la ristra vacía, se crea un fichero temporal que se destruye al acabar la ejecución del programa.

Las funciones Is_Open (de tipo Boolean), Mode (de tipo File_Mode) y Name (de tipo String) sirven para saber, respectivamente, si un fichero está abierto, en qué modo y con qué fichero externo está asociado; todas ellas requieren un parámetro de tipo File_Type.

Una vez que se ha terminado de trabajar con un fichero se debe cerrar con la operación Close a la que se pasa como parámetro una variable de tipo File_Type .

Close(Fichero1);

Operaciones de entrada/salida.

A un fichero de texto abierto le son aplicables en toda su extensión las mismas operaciones que a la entrada/salida por terminal, con la salvedad de que se debe incluir como primer parámetro el fichero, la variable que representa el fichero lógico (tipo File_Type), al que hace referencia la operación; por ejemplo, para escribir el valor de la variable V en el fichero asociado con Fichero1, la instrucción es "Put(Fichero1,V)" en vez de "Put(V)".

Operaciones relacionadas con la estructura de los ficheros.

 Existen operaciones para controlar las marcas del fichero en relación a:

    Existen operaciones para configurar el tamaño de la línea y el tamaño de la página.

Otras operaciones con ficheros.

La eliminación de un fichero se realiza mediante el procedimiento Delete, que borra el fichero externo asociado al parámetro File_type que se le pase. Para otras operaciones, consultar la librería Text_Io .

Delete(Fichero1);

© Grupo de Estructuras de Datos y Lingüística Computacional - ULPGC.

Anterior | Superior | Siguiente