Решение №5 из главы 16. Выделите из строки массив первых 8 строковых литералов, которые являются числами

Задача №5

Пользователь вводит строку произвольных символов, выделите из неё массив первых 8 строковых литералов, которые являются числами. И выведите эти числа на экран.
Например, из строки:
rew2@#$$#435tr353453t4er4
должны быть выделены подстроки:
2
435
353453
4
4

program pascal_string_array_char2;
var i , j , amount : integer; // секция обьявления переменных
    inputstr , emptystr , symbol : string;
    str : array [1..8] of string;
begin // начало тела программы
i := 1;
j := 1;
amount := 0;
writeln( 'input string : ' );
readln( inputstr ) ; // считывание строки
while( i <= length( inputstr ) ) do // пока истинно условие выполняем
begin
  emptystr := ' ' ; // пустая строка
  symbol := inputstr[ i ]; // первый символ строки
  { пока условие выполняется в пустую строку добавляем символы строки}
  while( symbol >= '0' ) and ( symbol <= '9' ) and ( amount <> 8 ) do
  begin
    emptystr += symbol; // добавляем
    i+=1; // при каждом проходе увеличиваем индекс 
    if( i < length( inputstr ) ) then // если не вышли за длинну строки
      symbol := inputstr[ i ] // символ равен символу строки с индексом i
    else
      break; // иначе завершаем
  end;
  i+=1; // увеличиваем при каждом проходе внешнего цикла
  if ( emptystr <> ' ' ) then // если строка не пуста 
  begin
    str[j] := emptystr; // элемент массива равен накопленной строке
    j+=1; // увеличиваем индекс массива
    amount += 1; // увеличиваем переменную пока она не будет равна 8
  end
end;
for j := 1 to high(str) do //обходим массив с целью извлечения его значений
  writeln( str[j] ); // выводим элемент массива
end.