Задача 6 Урок 17

Урок 17

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


type ar = array[1..8] of string;

var s0: string;
    arr: ar;

  procedure p1(var arr1: ar);//вносим в ячейки ''
    var i1: integer;

  begin
    for i1 := 1 to length(arr1) do
      arr1[i1] := '';
  end;

procedure p2(arr1: ar);// печать массива
  var i1: integer;

  begin
    for i1 := 1 to length(arr1) do
      if (arr1[i1] <> '') then
        writeln(arr1[i1]);
  end;

function f1(s: string; arr1: array of string): ar;//сохранаяем числа в ячейки
  var i, t{счетчик для записи в массив строк}: integer;
    b{флаг первой строки}: boolean;

begin
  b := false;
  t := 0;
  for i := 1 to length(s) do
  begin
    if (s[i] >= '0') and (s[i] <= '9') then
    begin
      if (not b) then
      begin
       inc(t);
       b := true;
       arr1[t] := arr1[t] + s[i];
      end
      else if b then
      begin
       arr1[t] := arr1[t] + s[i];
      end;
    end
    else
      b := false;
  end;
  result := arr1;
end;

begin
  writeln('Введите строку');
  readln(s0);
 // s0 := 'rew2@#$$#435tr353453t4er4';
  p1(arr);//очищаем значения массива
  arr := f1(s0, arr);//получили массив из строки
  p2(arr);//печать массива
  readln();
end.

КОНСОЛЬ

Введите строку
hgb63hbh5b4jb456kjhb5b4jh6bbhjbl
63
5
4
456
5
4
6