http://www.adaconcept.com/programs/stringkezeles.adb
--FIGYELEM: a kod az alapveto stringmuveleteket mutatja be...
--nincs kivetelkezeles, tuti elsore elszall a progi...
--lesd a kodot!!! es probalj ki feladatokon mindent!!!


with Ada.Text_IO;
with Ada.Float_Text_IO;
with Ada.Strings.Unbounded;
with Ada.Strings.Unbounded.Text_IO;

use Ada.Text_IO;


procedure stringkezeles is    
   szoveg:string(1..255):=(others=>' ');
   szoveg_hossz:Natural;
   
   us:Ada.Strings.Unbounded.Unbounded_String:=Ada.Strings.Unbounded.Null_Unbounded_String;  --igy deklaralunk/inicializalunk Unbounded_String-et... :)
   l:integer;
   
   szam:float:=0.0;
   szamszoveg:string:="7.7";
begin 
   Ada.Text_IO.Put_Line("Program indul");
   put_line("gepelj be valamit: ");

   ------------------------------------"sima" string   
   
   get_line(szoveg,szoveg_hossz);                                              --bekerunk a billentyuzetrol a szoveg valtozoba, a bekert/a felhasznalo altal megadott szoveg hossza a szoveg_hossz valtozoba kerul
   put_line(szoveg(1..szoveg_hossz) & "|");                                    --kiirjuk a szoveg string-et + egy | jelet, hogy tenyleg lassuk a veget...
 

   ------------------------------------Unbounded_String  
   
   Ada.Strings.Unbounded.Append(us,szoveg(1..szoveg_hossz));                   --ertekadas egy Unbounded_String-nek
   
   put_line(Ada.Strings.Unbounded.To_String(us));                              --| Unbounded_String kiirasa  ketfelekeppen
   Ada.Strings.Unbounded.Text_IO.Put_Line(us);                                 --| 
   new_line;
   put_line("adj meg ujra egy szoveget: ");
   
   us:=Ada.Strings.Unbounded.Text_IO.Get_Line;                                 --bekeres bill.-rol Unbounded_String-be 
   Ada.Strings.Unbounded.Text_IO.Put_Line(us);
    
   put_line("a megadott szoveg hossza"); 
   l:=Ada.Strings.Unbounded.Length(us);                                        --Unbounded_String hosszanak lekerese
   put(integer'image(l));
   new_line;
   
   put_line("az elso karaktere: ");
   new_line;
   put(Ada.Strings.Unbounded.Element(us,1));                                   --|Unbounded_String egy karakterenek kiirasa...
   new_line;
                                
   put(Ada.Strings.Unbounded.Slice(us,2,l));                                   --| es tobbnek...  (Unbounded_String, mettol, meddig)
   new_line;
   
   Ada.Strings.Unbounded.Insert(us,l,szamszoveg);                              --Unbounded_String-be egy masik szoveg beszurasa egy adott poziciotol...
   Ada.Strings.Unbounded.Text_IO.Put_Line(us);
 
   Ada.Strings.Unbounded.Delete(us,1,1);                                       --torles Unbounded_String-bol...  (probalgassatok... :D )
   Ada.Strings.Unbounded.Text_IO.Put_Line(us);
   
   ------------------------------------Konvertalasok   
  
   Ada.Float_Text_IO.put(float'value(szamszoveg(1..szamszoveg'last)));         --"sima" string float-ta konvertalasa
   new_line;
   
   put_line("adj meg egy float szamot: ");   
   us:=Ada.Strings.Unbounded.Text_IO.Get_Line; 
   szam:=float'value(Ada.Strings.Unbounded.To_String(us));                     --float-ta konvertaljuk a begepelt sort
   Ada.Float_Text_IO.put(szam);

   new_line;
   Ada.Text_IO.Put_Line("Program vege");
end;