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 вторая цифра зависит от файла