DataMuseum.dkPresents historical artifacts from the history of: Rational R1000/400 Tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about Rational R1000/400 Tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - downloadIndex: ┃ B T ┃
Length: 5014 (0x1396) Types: TextFile Names: »B«
└─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧
with Text_Io; package body Product is package Int_Io is new Text_Io.Integer_Io (Integer); F : Text_Io.File_Type; procedure Openoutputfile (Filename : String := "outfile") is begin Text_Io.Create (File => F, Mode => Text_Io.Out_File, Name => Filename); end Openoutputfile; procedure Closeoutputfile is begin Text_Io.Close (F); end Closeoutputfile; procedure Sendtofile (Value1, Value2, Value3, Value4, Value5 : Integer) is begin Int_Io.Put (F, Value1); Int_Io.Put (F, Value2); Int_Io.Put (F, Value3); Int_Io.Put (F, Value4); Int_Io.Put (F, Value5); Text_Io.New_Line (F); end Sendtofile; procedure Productactiver (Ptr : Reduct.Preductnode) is Periph, Actor, Time : Integer; begin Periph := Ptr.Act_Periph; Actor := Ptr.Act_Actor; Time := Ptr.Thetime; Sendtofile (Periph, Actor, Time, 1, 0); end Productactiver; procedure Productdesactiver (Ptr : Reduct.Preductnode) is Periph, Actor, Time : Integer; begin Periph := Ptr.Des_Periph; Actor := Ptr.Des_Actor; Time := Ptr.Thetime; Sendtofile (Periph, Actor, Time, 0, 0); end Productdesactiver; procedure Productmodifier (Ptr : Reduct.Preductnode) is Periph, Actor, Value1, Time : Integer; begin Periph := Ptr.Mod_Periph; Actor := Ptr.Mod_Actor; Value1 := Ptr.Mod_Nbre; Time := Ptr.Thetime; Sendtofile (Periph, Actor, Time, Value1, 0); end Productmodifier; procedure Productevoluer (Ptr : Reduct.Preductnode) is Periph, Actor, Value1, Value2, Time : Integer; begin Periph := Ptr.Evo_Periph; Actor := Ptr.Evo_Actor; Value1 := Ptr.Evo_Nbre1; Value2 := Ptr.Evo_Nbre2; Time := Ptr.Thetime; Sendtofile (Periph, Actor, Time, Value1, Value2); end Productevoluer; procedure Producttree (Ptrareducttree : Reduct.Preductnode) is use Reduct; Ptr : Reduct.Preductnode; begin Ptr := Ptrareducttree; while Ptr /= null loop case Ptr.Thetype is when Act => Productactiver (Ptr); when Des => Productdesactiver (Ptr); when Modi => Productmodifier (Ptr); when Evo => Productevoluer (Ptr); when None => null; end case; Ptr := Ptr.Next; end loop; end Producttree; -- Tests affichage procedure Printactiver (Ptr : Reduct.Preductnode) is Periph, Actor, Time : Integer; begin Periph := Ptr.Act_Periph; Actor := Ptr.Act_Actor; Time := Ptr.Thetime; Text_Io.Put_Line (Integer'Image (Periph) & " " & Integer'Image (Actor) & " " & Integer'Image (Time) & " 1 0"); end Printactiver; procedure Printdesactiver (Ptr : Reduct.Preductnode) is Periph, Actor, Time : Integer; begin Periph := Ptr.Des_Periph; Actor := Ptr.Des_Actor; Time := Ptr.Thetime; Text_Io.Put_Line (Integer'Image (Periph) & " " & Integer'Image (Actor) & " " & Integer'Image (Time) & " 0 0"); end Printdesactiver; procedure Printmodifier (Ptr : Reduct.Preductnode) is Periph, Actor, Value1, Time : Integer; begin Periph := Ptr.Mod_Periph; Actor := Ptr.Mod_Actor; Value1 := Ptr.Mod_Nbre; Time := Ptr.Thetime; Text_Io.Put_Line (Integer'Image (Periph) & " " & Integer'Image (Actor) & " " & Integer'Image (Time) & " " & Integer'Image (Value1) & " 0"); end Printmodifier; procedure Printevoluer (Ptr : Reduct.Preductnode) is Periph, Actor, Value1, Value2, Time : Integer; begin Periph := Ptr.Evo_Periph; Actor := Ptr.Evo_Actor; Value1 := Ptr.Evo_Nbre1; Value2 := Ptr.Evo_Nbre2; Time := Ptr.Thetime; Text_Io.Put_Line (Integer'Image (Periph) & " " & Integer'Image (Actor) & " " & Integer'Image (Time) & Integer'Image (Value1) & " " & Integer'Image (Value2)); end Printevoluer; procedure Printtree (Ptrareducttree : Reduct.Preductnode) is use Reduct; Ptr : Reduct.Preductnode; begin Ptr := Ptrareducttree; while Ptr /= null loop case Ptr.Thetype is when Act => Printactiver (Ptr); when Des => Printdesactiver (Ptr); when Modi => Printmodifier (Ptr); when Evo => Printevoluer (Ptr); when None => null; end case; Ptr := Ptr.Next; end loop; end Printtree; end Product;