Programación en Ada/Entrada-salida

← Sobrecarga Entrada/Salida Interfaz con otros lenguajes →


Ada tiene cinco bibliotecas predefinidas independientes para operaciones de entrada/salida. Por tanto, la lección más importante a aprender es elegir la más adecuada en cada caso.

Direct I/O

editar

Direct I/O se usa para acceso directo a archivos que contienen únicamente elementos del mismo tipo. Con Direct_IO el cursor del archivo se puede situar en cualquier elemento de ese tipo (el concepto conocido en inglés como random access). El tipo de los elementos ha de ser un subtipo definitivo (definite subtype), es decir, un subtipo cuyos objetos tienen un tamaño definido.

Sequential I/O

editar

Sequential I/O se usa para el acceso secuencial a archivos que únicamente contienen elementos de un tipo especificado.

Con Sequential I/O es posible elegir entre tipos definitivos y no definitivos, pero los elementos se han de leer uno tras otro.

Storage I/O

editar

Storage I/O nos permite almacenar un único elemento en un buffer de memoria. El elemento ha de ser de un subtipo definitivo. Storage I/O se usa en la programación concurrente para trasladar elementos de una tarea a otra.

Stream I/O

editar

Stream I/O es el paquete de entrada/salida más potente de Ada. Stream I/O permite mezclar objetos de diferentes tipos en un archivo secuencial. Para leer/escribir de/en un stream (un flujo de datos) cada tipo provee un atributo 'Read y otro 'Write. Estos atributos están definidos por el compilador para cada tipo que declaremos.

Estos atributos tratan los elementos como datos sin interpretar. Son ideales tanto para entrada/salida de bajo nivel como para interoperar con otros lenguajes de programación.

Los atributos 'Input y 'Output añaden información de control adicional al archivo, tal como el atributo 'First y el 'Last de un array.

En programación orientada a objetos es posible usar los atributos 'Class'Input y 'Class'Output para almacenar y recuperar correctamente un tipo concreto de la misma clase.

Stream I/O es también el paquete de entrada/salida más flexible. Todos los atributos de E/S pueden sobrescribirse con subprogramas definidos por el usuario y es posible definir nuestros propios tipos de Stream I/O usando técnicas avanzadas de orientación a objetos.

Text I/O

editar

Text I/O probablemente sea el tipo de entrada/salida más usada. Todos los datos del archivo se representan en formato de texto legible. Text I/O provee la posibilidad de definir el layout de líneas y páginas, pero el estándar es texto de forma libre.

Biblioteca predefinida

editar

Existen varios paquetes predefinidos para la entrada/salida en Ada:

Manual de referencia de Ada

editar