http://www.adaconcept.com/programs/fajlkezeles.adb
with Ada.text_io;

use Ada.text_io;

procedure fajlkezeles is
   letrehozandofajl:file_type;                                                      --ezzel hozunk letre egy uj fajlt
   fajl:file_type;                                                                  --ezzel hasznaljuk a letrehozott fajlt
   megnyitasimod:file_mode;
   
   ch:character;                                                                    --a fajl-bol kiolvasott karakterekhez
   sor:string(1..255);                                                              --|a fajl-bol kiolvasott sorokhoz
   sor_hossz:natural;                                                               --|  (a kiolvasott sor hosszat tartalmazza)
   
   fajlba_irando_sor:string:="A nap ide betuz, ";                                   --ezt irjuk ki a fajl-ba... :)
    

begin
   put_line("program indul");
   
   create(letrehozandofajl,in_file,"ujfajl.txt");                                   --letrehozzuk az uj fajlt            (fajlleiro,megnyitasi mod,fajlnev)
   close(letrehozandofajl);                                                         --lezarjuk a letrehozandofajl-unkat!!!!

   
   open(fajl,out_file,"ujfajl.txt");                                                --|megnyitjuk a fajl-t irasra.       (fajlleiro,megnyitasi mod,fajlnev)  
                                                                                    --|(megnyitasi modok: in_file, out_file, append_file) = (olvasas, iras (torli a fajl tartalmat), hozzairas)
  
   if is_open(fajl) then                                                            --ha mar megnyitottuk a fajl-t akkor...
                         set_col(20);                                               --erdekesseg: a 20 oszlopban kezdi a kiirast a kepernyore (vagy set_col(fajl,20); eseten a fajl-ba)
                         megnyitasimod:=mode(fajl);                                 --|a fajl megnyitasi modjanak lekerdezese...
                         put_line(file_mode'image(megnyitasimod));                  --|..es ennek kiirasa
                         put_line(name(fajl));                                      --a fajl nevenek es eleresi utjanak lekerdezese
                    else put_line("nincs megnyitva a fajl");
   end if;
    
   new_line;
   new_line;
   
   
   ------------------------------------iras a fajl-ba...
   
    
   put(fajl,"Ulok a budin, log a frok, ");                                          --igy irunk a fajl-ba string-et...
   new_line(fajl);                                                                  --sortores a fajl-ba
   put(fajl,'s');                                                                   --|karakterek irasa a fajl-ba
   put(fajl,'z');                                                                   --|
   put(fajl,"arok");
   
   
   close(fajl);                                                                     --lezarjuk a fajl-t

    
   open(fajl,append_file,"ujfajl.txt");                                             --megnyitjuk hozzairasra a fajl-t


   put(fajl,fajlba_irando_sor(1..fajlba_irando_sor'last));                          --legyen ilyen is...
   put(fajl,"engem innen eluz, ");
   new_line(fajl);
   put(fajl,"a buz.");
   

   close(fajl);                                                                     --lezarjuk a fajl-t
   
   
   
   open(fajl,in_file,"ujfajl.txt");                                                 --|megnyitjuk a fajl-t olvasasra.        (fajlleiro,megnyitasi mod,fajlnev)  
                                                                                    --|(megnyitasi modok: in_file, out_file, append_file) = (olvasas, iras (torli a fajl tartalmat), hozzairas)



   ------------------------------------olvasas a fajl-bol soronkent
   

   while not end_of_file(fajl) loop                                                 --ciklus, amig nincs vege a fajl-nak...
      get_line(fajl,sor,sor_hossz);                                                 --kiolvasunk a fajl-bol egy sort, a sor string-be (ennek a sornak a hossza kerul a sor_hossz valtozoba)
      put(sor(1..sor_hossz));                                                       --kiirjuk a kepernyore a kiolvasott sort
      new_line;
   end loop;

   reset(fajl,in_file);                                                             --"ujranyitjuk" a fajl-t olvasasra (az elejere pozicionalunk ujra!!!) 
   new_line(2);                                                                     --erdekesseg: kiirunk a kepernyore 2 sortorest (vagy new_line(fajl,2); eseten a fajlba)
 
   ------------------------------------olvasas a fajl-bol karakterenkent
   

   while not end_of_file(fajl) loop                                                 --ciklus, amig nincs vege a fajl-nak...
      while not end_of_line(fajl) loop                                              --ciklus, amig nincs vege a fajl egy (,az aktualis) soranak...
         get(fajl,ch);                                                              --kiolvasunk egy karaktert a fajl-bol a ch valtozoba
         put(ch);                                                                   --kiirjuk a kepernyore
       end loop;
      
       if not end_of_file(fajl) then 
                                skip_line(fajl);                                    --a kovetkezo sorra ugrunk a fajl-ban (, ha nincs vege a fajl-nak)
                                new_line; 
                                end if;
   end loop;
 
  

   close(fajl);                                                                     --lezarjuk a fajl-t
   
    

   new_line;  
   new_line;
   put_line("program vege");
end;