All pastes #372415 Raw Edit

Stuff

public text v1 · immutable
#372415 ·published 2007-02-26 01:05 UTC
rendered paste body
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Sequential_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
with Ada.Direct_IO;


procedure Labb6 is

   type Person_Type is
      record
         Efternamn : String(1..20);
         Efternamn_Length : Integer;
         Fornamn : String(1..20);
         Fornamn_Length : Integer;
         Gatuadress : String(1..20);
         Gatuadress_Length : Integer;
         Postadress : String(1..20);
         Postadress_length : Integer;
         Antal_Intressen : Integer;
         --Intressen : Intressen_Array;
      end record;

   --package My_Person_IO is
     -- new Ada.Sequential_IO(Element_Type => Person_Type);
   --use My_Person_IO;

   procedure Get(Person : out Person_Type) is

      Efternamn : String(1..20);
      Efternamn_Length : Integer;
      Fornamn : String(1..20);
      Fornamn_Length : Integer;
      Gatuadress : String(1..20);
      Gatuadress_length : Integer;
      Postadress : String(1..20);
      Postadress_Length : Integer;
      Antal_Intressen : Integer;

   begin

      Get_Line(Efternamn, Efternamn_Length);
      if Efternamn_Length = Efternamn'Last then
         Skip_Line;
      end if;

      Get_Line(Fornamn, Fornamn_Length);
      if Fornamn_Length = Fornamn'Last then
         Skip_Line;
      end if;

      Get_Line(Gatuadress, Gatuadress_Length);
      if Gatuadress_Length = Gatuadress'Last then
         Skip_Line;
      end if;

      Get_Line(postadress, postadress_Length);
      if Postadress_Length = Postadress'Last then
         Skip_Line;
      end if;

      Get(Antal_Intressen);

      Person.Efternamn := Efternamn;
      Person.Efternamn_Length := Efternamn_Length;
      Person.Fornamn := Fornamn;
      Person.Fornamn_Length := Fornamn_Length;
      Person.Gatuadress := Gatuadress;
      Person.Gatuadress_Length := Gatuadress_Length;
      Person.Postadress := Postadress;
      Person.Postadress_Length := Postadress_Length;
      Person.Antal_Intressen := Antal_Intressen;

   end Get;

   procedure File_It(Fil : in File_Type;
                     Person : in Person_Type) is


   begin


      Open(Fil, Append_File, "fil");
      Put_Line(Fil, "--------------------------------------------------");
      Put(Fil, Person.Efternamn(1..Person.Efternamn_Length));
      Put(Fil, " ");
      Put(Fil, Person.Fornamn(1..Person.Fornamn_Length));
      Put(Fil, " ");
      Put(Fil, Person.Gatuadress(1..Person.Gatuadress_Length));
      Put(Fil, " ");
      Put(Fil, Person.Postadress(1..Person.Postadress_Length));
      Put(Fil, " *** Intressen: ");
      Put(Fil, Person.Antal_Intressen, 0);
      Close(Fil);

   end File_It;

   Person : Person_Type;
   Fil : File_Type;
   --Fil : My_Person_IO.File_Type;


begin

   --Create(Fil, Append_File, "fil");
   --Open(Fil, Append_File, "fil");
   Get(Person);
   --Open(Fil, Out_File, "fil");
   File_It(Fil, Person);

   --Open(Fil, Append_File, "fil");
   Get(Person);
   File_It(Fil, Person);

   --Close(Fil);

end Labb6;