with Ada.Text_IO; with Ada.Command_Line; with Ada.Strings.Fixed; with Ada.Integer_Text_IO; procedure cl4 is package T_IO renames Ada.Text_IO; package CL renames Ada.Command_Line; package S renames Ada.Strings; package SF renames Ada.Strings.Fixed; package I_IO renames Ada.Integer_Text_IO; function GetLine (length: Integer := 1000) return String is Line: String(1 .. length); Last: Integer; begin T_IO.Get_Line(Line, Last); return Line(1 .. Last); end GetLine; PartsLength : constant := 100; X : String (1..1000); Pos, Length2, Length : Integer; Part1, Part2: String (1 .. PartsLength); Val1, Val2: Integer; function strlen(s : String) return Integer is pos : Integer := s'First; begin SearchNull: while pos < s'Last and s(pos) /= Character'Val(0) loop pos := pos + 1; end loop SearchNull; return pos-s'First; end strlen; begin T_IO.Put_Line("PrĂ³ba wczytania tekstu ;)"); ReadingLines: loop SF.Move( GetLine, X, S.Right, S.Left, Character'Val(0)); Length := strlen(X); T_IO.Put_Line ("Wczytano: '" & X & "', Length: " & Integer'Image(Length)); Pos := SF.Index(X," "); Length2 := Length - Pos ; T_IO.Put_Line ("Przerwe znaleziono na miejscu: " & Integer'Image(Pos) & ", Length2: " & Integer'Image(Length2)); SF.Move( X(1..Pos-1), Part1, S.Right, S.Left, Character'Val(0)); SF.Move( X(Pos+1 .. Pos+Length2), Part2, S.Right, S.Left, Character'Val(0)); T_IO.Put_Line ("1. Czesc: '" & Part1 & "', 2. Czesc: '" & Part2 & "'"); Val1 := Integer'Value(Part1(1..Pos-1)); Val2 := Integer'Value(Part2(1..Length2)); T_IO.Put_Line("Val1: " & Integer'Image(Val1) & ", Val2: " & Integer'Image(Val2)); exit ReadingLines when T_IO.End_Of_File; end loop ReadingLines; end cl4;