SoloCodigo

Programación General => Otros Lenguajes de Programación => ADA => Mensaje iniciado por: Marks en Martes 13 de Enero de 2004, 16:24

Título: Codigos En Ada
Publicado 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]
Título: Re: Codigos En Ada
Publicado por: gandalfelgris en Martes 13 de Enero de 2004, 17:29
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
Título: Re: Codigos En Ada
Publicado por: Marks en Martes 13 de Enero de 2004, 17:59
: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
Título: Re: Codigos En Ada
Publicado por: Marks en Miércoles 21 de Enero de 2004, 17:23
: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
Título: Re: Codigos En Ada
Publicado por: gandalfelgris en Miércoles 21 de Enero de 2004, 18:46
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.
Título: Re: Codigos En Ada
Publicado por: -SB- en Martes 2 de Marzo de 2004, 18:30
Perdon, no queria escribir aqui, me he confundido de tema.