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: 5754 (0x167a) Types: TextFile Names: »B«
└─⟦149519bd4⟧ Bits:30000546 8mm tape, Rational 1000, !projects 93-07-13 └─ ⟦124ff5788⟧ »DATA« └─⟦this⟧ └─⟦a7d1ea751⟧ Bits:30000550 8mm tape, Rational 1000, !users!projects 94_04_11 └─ ⟦129cab021⟧ »DATA« └─⟦this⟧ └─⟦f64eaa120⟧ Bits:30000752 8mm tape, Rational 1000, !projects 93 02 16 └─ ⟦6f12a12be⟧ »DATA« └─⟦this⟧ └─⟦2f6cfab89⟧ Bits:30000547 8mm tape, Rational 1000, !projects 94-01-04 └─ ⟦d65440be7⟧ »DATA« └─⟦this⟧
package body Dyn is package My_Integer_Io is new Integer_Io (Integer); package My_Float_Io is new Float_Io (Float); function "&" (Ds1, Ds2 : Dyn_String) return Dyn_String is Ds3 : Dyn_String; begin Ds3 := new String_Contents (Ds1.Size + Ds2.Size); Ds3.Data (1 .. Ds3.Size) := Ds1.Data (1 .. Ds1.Size) & Ds2.Data (1 .. Ds2.Size); return Ds3; end "&"; function D_String (Char : Character) return Dyn_String is Ds : Dyn_String; begin Ds := new String_Contents (Size => 1); Ds.Data (1) := Char; return Ds; end D_String; function D_String (Str : String) return Dyn_String is Ds : Dyn_String; begin Ds := new String_Contents (Size => Str'Length); Ds.Data (1 .. Ds.Size) := Str; return Ds; end D_String; function D_String (Int : in Integer) return Dyn_String is Ds : Dyn_String; begin Ds := D_String (Integer'Image (Int)); return Ds; end D_String; function Char (Dstr : Dyn_String) return Character is begin return Dstr.Data (1); end Char; function Str (Dstr : Dyn_String) return String is begin return Dstr.Data (1 .. Dstr.Size); end Str; function Int (Dstr : Dyn_String) return Integer is V : Integer; L : Positive; begin My_Integer_Io.Get (Str (Dstr), V, L); return V; end Int; function Flt (Dstr : Dyn_String) return Float is V : Float; L : Positive; begin My_Float_Io.Get (Str (Dstr), V, L); return V; end Flt; function Length (Dstr : Dyn_String) return Natural is begin return Dstr.Size; end Length; function "<" (Ds1, Ds2 : Dyn_String) return Boolean is begin if Str (Ds1) < Str (Ds2) then return (True); else return (False); end if; end "<"; function Substring (Dstr : Dyn_String; Start : Natural; Length : Natural := 0) return Dyn_String is Ds : Dyn_String; L : Natural := Length; begin if (Start < 1) or (Start > Dstr.Size) then raise Constraint_Error; else if L = 0 then L := Dstr.Size - Start + 1; end if; if Dstr.Size < Start + L - 1 then raise String_Too_Short; else Ds := new String_Contents (L); Ds.Data (1 .. L) := Dstr.Data (Start .. Start + L - 1); return Ds; end if; end if; end Substring; function Index (Source_String, Pattern_String : Dyn_String; Start_Pos : Integer) return Integer is No_Match : Integer := 0; No_Fit : Integer := -1; begin if Source_String.Size < Pattern_String.Size + Start_Pos - 1 or Start_Pos < 1 then return No_Fit; end if; for I in Start_Pos .. Source_String.Size - Pattern_String.Size + 1 loop if Source_String.Data (I .. I + Pattern_String.Size - 1) = Pattern_String.Data (1 .. Pattern_String.Size) then return I; end if; end loop; return No_Match; end Index; function Rindex (Source_String, Pattern_String : Dyn_String; Start_Pos : Integer) return Integer is No_Match : Integer := 0; No_Fit : Integer := -1; begin if Source_String.Size < Pattern_String.Size + Start_Pos - 1 or Start_Pos < 1 then return No_Fit; end if; for I in reverse 1 .. Start_Pos loop if Source_String.Data (I .. I + Pattern_String.Size - 1) = Pattern_String.Data (1 .. Pattern_String.Size) then return I; end if; end loop; return No_Match; end Rindex; function Upper_Case (Strg : in Dyn.Dyn_String) return String is Answer : String (1 .. Length (Strg)); begin Answer := Str (Strg); for I in 1 .. Length (Strg) loop if (Answer (I) >= 'a') and (Answer (I) <= 'z') then Answer (I) := Character'Val (Character'Pos (Answer (I)) - Character'Pos ('a') + Character'Pos ('A')); end if; end loop; return Answer; end Upper_Case; procedure Get_Line (Filename : in Text_Io.File_Type; Item : out Dyn.Dyn_String; Last : out Natural) is Static_String_Var : String (1 .. 255); Lastchar : Natural; begin Text_Io.Get_Line (Filename, Static_String_Var, Lastchar); Item := Dyn.Substring (Dyn.D_String (Static_String_Var), 1, Lastchar); Last := Lastchar; end Get_Line; procedure Get_Line (Item : out Dyn.Dyn_String; Last : out Natural) is Static_String_Var : String (1 .. 255); Lastchar : Natural; begin Text_Io.Get_Line (Static_String_Var, Lastchar); Item := Dyn.Substring (Dyn.D_String (Static_String_Var), 1, Lastchar); Last := Lastchar; end Get_Line; procedure Put (Filename : in Text_Io.File_Type; Item : in Dyn.Dyn_String) is begin Put (Filename, Str (Item)); end Put; procedure Put (Item : in Dyn.Dyn_String) is begin Put (Str (Item)); end Put; procedure Open (Filename : in out Text_Io.File_Type; Mode : in Text_Io.File_Mode; Filenm : in Dyn_String) is begin Text_Io.Open (Filename, Mode, Str (Filenm)); end Open; end Dyn; -- -- EXPERT SYSTEM --