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;