with Text_Io;
procedure Phone_Solution1 (Search_String : in String) is

    Phone_File : Text_Io.File_Type;

    Phone_List : constant String := "!users.dhe.tools.phone_list";

    Found : Boolean := False;

    Line : String (1 .. 100);

    Last : Natural;

    function Contains (Fragment : String; In_String : String) return Boolean is
    begin
        for I in In_String'First .. In_String'Last - Fragment'Length + 1 loop
            if Fragment = In_String (I .. I + Fragment'Length - 1) then
                return True;
            end if;
        end loop;
        return False;
    end Contains;
begin
    Text_Io.Open (Phone_File, Text_Io.In_File, Phone_List);

    while not Text_Io.End_Of_File (Phone_File) loop

        Text_Io.Get_Line (Phone_File, Line, Last);

        if Contains (Search_String,
                     Line (Line'First .. Line'First + Last - 1)) then
            Found := True;
            Text_Io.Put_Line (Line (Line'First .. Line'First + Last - 1));
        end if;
    end loop;

    if not Found then
        Text_Io.Put_Line ("Nothing matches the search string");
    end if;

    Text_Io.Close (Phone_File);

end Phone_Solution1;