Поиск значений по первым числам и сохранение

Есть База вида:

87877878655444
32323355555
23-32233223

В memo1 ввожу варианты для поиска по первым значениям (нужен поиск именно по первым значениям):

87877
323
23-3

И получаю три разных файла в котором будут:

Имя первого файла будет 87877.txt, и в нем текст:

87877878655444

Имя второго файла будет 323.txt, и в нем текст:

32323355555

Имя третьего файла будет 323.txt, и в нем текст:

23-32233223

Сделал код но тут не могу понять: как сделать сохранения по разным файлам и поиск по первым значениям:

    var
    fall, f1: TextFile;
    S: string;
    mas: array of string;
    i: integer;
    begin
    //Открываем диалог выбора файла
    if OpenDialog1.Execute then
    begin
         AssignFile(fall, OpenDialog1.FileName);
         reset(fall);
         AssignFile(f1, ExtractFileDir(OpenDialog1.FileName)+'\Reaultat.txt');
         IF FileExists(s) then
         Append(F1)
        else
          rewrite(F1);
         end;
    
         SetLength(mas, Memo1.Lines.Count);
          for i := Low(mas) to High(mas) do
          mas[i] := Memo1.Lines.Strings[i];
    
    //работаем по строкам в файле
     while not Eof(fall) do
      begin
     //читаем строку
      ReadLn(fall, S);
    // Работаем в массиве
       for i := Low(mas) to High(mas) do
          begin
    // Ищем
       if (Pos(mas[i], s) > 0) then
// Записываем
      writeln(f1, S);
    
       end;
    
      end;
// закрываем
    CloseFile(fall);
    CloseFile(f1);
    end;

Ответы (0 шт):