Lazarus Delphi Pasca Поиск строки в txt файле с помощью string и вывод в Memo

Делаю проект-справочник OBD2 кодов, необходимо в txt файлах найти строку по номеру кода типа "Pyxxx" где "P" это буквы P,B,C,U; "y" это это число от 0 до 3 включительно; а "xxx" это как буквы так и цифры. Файл где искать, пользователь выбирает в combobox1 и одновременно букву которая записана и изменяется в параметре label1.caption; Числа от 0 до 3 записаны в параметре combobox2.ItemIndex и их может выбрать пользователь (В некоторых файлах число фиксированное); последние 3 числа/буквы пользователь вводит в edit1.text. Я хотел выводить строку в Memo через Tstring.String но проблема в том что данный оператор принимает только integer (номер строки в файле) но не текст.

Как сделать так чтобы в файлах искались строки по совмещенному параметру "label1.caption+combobox2.ItemIndex+edit1.text"? Вот код который выполняется по нажатии кнопки (пользователь выбирает в каком файле искать в combobox)

  procedure TForm1.Button2Click(Sender: TObject);
  begin
 S2File := TStringList.Create;
 case ComboBox3.ItemIndex of
   0: S2File.LoadFromFile('obd2codes\Bxxxx.txt');
   1: S2File.LoadFromFile('obd2codes\Cxxxx.txt');
   2: S2File.LoadFromFile('obd2codes\P0xxx.txt');
   3: S2File.LoadFromFile('obd2codes\P1xxx Acura.txt');
   4: S2File.LoadFromFile('obd2codes\P1xxx Audi.txt');
   5: S2File.LoadFromFile('obd2codes\P1xxx BMW.txt');
   6: S2File.LoadFromFile('obd2codes\P1xxx Chevy.txt');
   7: S2File.LoadFromFile('obd2codes\P1xxx Chrysler&Jeep.txt');
   8: S2File.LoadFromFile('obd2codes\P1xxx Dodge.txt');
   9: S2File.LoadFromFile('obd2codes\P1xxx Ford.txt');
   10: S2File.LoadFromFile('obd2codes\P1xxx GM.txt');
   11: S2File.LoadFromFile('obd2codes\P1xxx Honda.txt');
   12: S2File.LoadFromFile('obd2codes\P1xxx Infiniti&Nissan.txt');
   13: S2File.LoadFromFile('obd2codes\P1xxx KIA.txt');
   14: S2File.LoadFromFile('obd2codes\P1xxx Mazda.txt');
   15: S2File.LoadFromFile('obd2codes\P1xxx Mitsubishi.txt');
   16: S2File.LoadFromFile('obd2codes\P1xxx RAM.txt');
   17: S2File.LoadFromFile('obd2codes\P1xxx Toyota.txt');
   18: S2File.LoadFromFile('obd2codes\P2xxx.txt');
   19: S2File.LoadFromFile('obd2codes\P3xxx.txt');
   20: S2File.LoadFromFile('obd2codes\Uxxx.txt');
  end;

 sub := Label1.Caption+ComboBox2.Text+Edit1.Text;  //s:string - строка, в которой ищем, полученная через Readln или из StringList
 if Pos(sub, s) > 0 then
   Memo2.Lines.Add(s);

end;

P.S: при B,C,U вторую цифру пользователь выбирает сам, а при P вторая цифра зависит от файла


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