All pastes #536240 Raw Edit

Something

public text v1 · immutable
·published 2007-06-04 09:52 UTC
rendered paste body
with Ada.Text_Io, Ada.Command_Line, Ada.Direct_Io;
use Ada.Text_Io, Ada.Command_Line;

procedure Programa2 is
   
   Caracter:Character;
   Indice:Integer:=1;
   
   --Definición de la estructura que usamos
   Alfabeto:String:=" abcdefghijklmnopqrstuvwxyz";
   type Matriz is array(1..2,1..3) of Boolean;
   Palabra:Matriz;
   
   --Instanciación de Direct_IO
   package Lista_Braille is new Ada.Direct_Io(Matriz);
   use Lista_braille;
   
   --Declaración de enlaces logicos
   --F:lectura fichero texto
   F:Ada.Text_Io.File_Type;
   --G: lectura fichero "tabla_de_equivalencias.tde"
   G:Lista_Braille.File_Type;
   --H: fichero de salida .dat
   H:Lista_Braille.File_Type;
   --Para acceder de manera directa a una posicion del fichero
   Indice_Tabla:Lista_braille.positive_Count:=1;

   begin
      --Apertura y creación de los ficheros.
      Open(G,In_File,"tabla_de_equivalencias.tde");
      Open(F,In_File,Argument(1));
      Create(H,Out_File, Argument(2));
      --Mientras no fin del fichero de texto
      while not End_Of_File(F) loop
         --leemos
         Get(F,Caracter);
         --Mientras el caracter no sea el mismo que en el array "alfabeto"
         while Caracter/=Alfabeto(Indice) loop
            --Actualizar contador
            Indice_Tabla:=Indice_Tabla+1;
            --Buscarlo
            Indice:=Indice+1;
         end loop;
         --Apuntamos a la posición del fichero de tabla_de_equivalencias.tde
         Set_Index(G,Indice_Tabla);
         --Leemos esa posicion
         Read(G,Palabra,Indice_Tabla);
         --Escribimos en el fichero de salida
         Write(H,Palabra);
         --Reiniciamos los contadores de programa
         Indice_Tabla:=1;
         Indice:=1; 
      end loop;
      --Cierre de ficheros
      Close(F);
      Close(G);
      Close(H);
exception
   when Name_Error=>
      PUT_LINE("Fallo al introducir en nombre del archivo");
      
   end Programa2;