Ich bin mit der jetzigen Lösung zufrieden.
Code:
if group = 'A' then
case AnsiIndexText(pars[0], ['path', 'first_frame', 'end_frame' , 'first_filename' , 'check_if_files_exist']) oF
0: ini.basic.A.path := pars[1];
1: ini.basic.A.first := pars[1];
2: ini.basic.A.last := pars[1];
3: ini.basic.A.start_name := pars[1];
4: ini.basic.A.check_files_exist := true;
end
else
if group = 'B' then
case AnsiIndexText(pars[0], ['path' , 'first_frame' , 'end_frame' , 'first_filename', 'check_if_files_exist']) oF
0: ini.basic.B.path := pars[1];
1: ini.basic.B.first := pars[1];
2: ini.basic.B.last := pars[1];
3: ini.basic.B.start_name := pars[1];
4: ini.basic.B.check_files_exist := true;
end;
Da ist noch Luft nach oben.
a) Lokale Variablen mit schönen Namen verwenden und pars[0] bzw pars[1] zuweisen.
b) Prozedur machen für den doppelten Code und übergeben von ini.basic.A oder ini.basic.B. Dann spart man sich den doppelten Code. Dann der Aufruf:
Mach(group, 'A', pars[0], pars[1], ini.basic.A);
Mach(group, 'B', pars[0], pars[1], ini.basic.B);