Как разобрать строку в Аде с пробелами

Я получаю ввод от пользователя, использующего Get_Line, строка может быть командой, за которой следует значение (команда --- один или несколько пробелов --- значение -- новая строка), например,

CMD  4
CMD 6
CMD        10

Как я могу разобрать команду и значение в отдельных переменных?

до сих пор я могу анализировать строку перед пробелами, но как после пробела я могу получить значение и преобразовать его в целое число?

        for I in ip'Range loop
            if ip(I) = ' ' or ip(I) = HT then
                Put_Line(CMD);
                Put_Line(Integer'Image(Index));
            else
                CMD(I) := ip(I);
                Index := Index+1;
            end if;
        end loop;

--

Спасибо


person SD.    schedule 02.11.2014    source источник
comment
Подсказка: изучите регулярные выражения.   -  person NWS    schedule 02.11.2014
comment
@NWS - Хотя RegEx работает для этой конкретной проблемы, я не могу с чистой совестью рекомендовать его. Как программисту сопровождения, RegEx является постоянным источником боли: он слишком хрупок и часто используется, когда это неуместно (например, при разборе CSV).   -  person Shark8    schedule 08.11.2014
comment
@ Shark8 Хорошие замечания о недостатках регулярных выражений, однако у нас очень мало информации о его фактической пригодности для вопроса OP.   -  person NWS    schedule 08.11.2014