SoloCodigo
Programación General => Otros Lenguajes de Programación => ADA => Mensaje iniciado por: Marks en Martes 13 de Enero de 2004, 16:24
-
:hola: Hola Contertulios
Ante todos felicitar a esta web por el servicio que nos brindan y a todos aquellos
que aportan algo util en lo que a lenguajes de programacion se refiere.
Bueno mi pregunta es la siguiente:
Donde se puede encontrar codigos en ada donde se vea con claridad el
tratamiento de ficheros de tipo secuenciales, acceso directo?
gracias de antemano
Marks [itis]
-
Hola Marks,
por lo que yo se el paquete que se encarga de Tratar con ficheros secuenciales es el Ada.Sequential_Io. Es un paquete generico, lo cual quiere decir que sirve para almacenar ficheros secuenciales de cualquier tipo de datos. Por esa razon a la hora de utilizarlo es necesaria una instanciacion en la que le indiques el tipo de datos que almacenas en el fichero. Sin mas paso a exponerte un ejemplo para el caso de un fichero secuencial de enteros
with Ada.Sequential IO;
Procedure is
VARIABLES DEL PROCEDIMIENTO
package Lectura_Enteros is new Ada.Sequential_Io (integer);
use Lectura enteros
MAS VARIABLES QUE QUIERAS. TIENES QUE DECLARAR UNA VARIABLE QUE SEA
Lectura_enteros.File_Type (aunque el Lectura_Enteros no hace falta al incluir la clausula use)
begin
Una vez hecho esto aplica lo siguiente
Lectura_enteros.Read (parametros);
Lectura_enteros.Write (parametros);
Otra vez el nombre del paquete no hace falta por lo de arriba
CUERPO DEL PROCEDIMIENTO. MAS SENTENCIA QUE DEBAS AÑADIR
end ;
Si sigues este esquema no tendras ningun problema para leer de ningun fichero secuencial. No obstante si tienes problemas no dudes en consultarme. aitorfer@telefonica.net
Atentamente
-
:comp:
gracias por tu respuesta. :)
sobre la funcion get_line() olvidaba q tenia 3 parametros:
get_line(file,variables,longitud); lo habia olvidado antes , lo siento
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-**-*-*-*-*-*-*-*
volviendo al tema de los ficheros secuenciales ya tenia nocion de tu respuesta , pero me da este error a la hora de compilar un programita sobre el tratamiento
de files de acceso directo y secuenciales,, el error es el siguiente:
The name, Sequential_IO, does not denote a package
-
:huh:
Busca el error...... La puedes corregir? :D :D :D :D
type Nodo; -- Nodo de la lista
type PNodo is access Nodo; -- Puntero a los nodos de la lista
type Nodo is record
Info : Integer;
Anterior,
Siguiente: PNodo;
end record; -- Nodo
type Lista is record -- Tipo para representar una lista
Inicio, -- Acceso a la lista (por ambos extremos)
Fin : PNodo;
NumElem: Natural := 0; -- Nº de elementos
end record; -- Lista
-
Hola Marks: Este es codigo correcto.
package Prueba2 is
type Nodo; -- Nodo de la lista
type Pnodo is access Nodo; -- Puntero a los nodos de la lista
type Nodo is record
Info : Integer;
Anterior,
Siguiente: Pnodo;
end record; -- Nodo
type Lista is record -- Tipo para representar una lista
Inicio, -- Acceso a la lista (por ambos extremos)
Fin : Pnodo;
Numelem: Natural := 0; -- Nº de elementos
end record; -- Lista
end Prueba2;
Asimismo tambien te adjunto un fichero .ads con este codigo que esta probado compila perfectamente.
-
Perdon, no queria escribir aqui, me he confundido de tema.