Die Datenstruktur ändern
und gleiche Teile zusammenfassen?
(und dann nachfolgend den größten Teil ignorieren)
Delphi-Quellcode:
// nicht
ini.basic.path_A := pars[1]
ini.basic.path_B := pars[1]
// sondern
ini.basic.A.path := pars[1]
ini.basic.B.path := pars[1]
// für Objekte statt Records ... bei Records andersrum, also erst den Temp-Record füllen und dann zuweisen
if pars[0] = 'B' then X := ini.basic.B;
X.path := pars[1];
Delphi-Quellcode:
//if pars[0] = 'first_frame' then k := 'first_'+group
//else if pars[0] = 'end_frame' then k := 'last_'+group
//else if pars[0] = 'first_filename' then k := 'start_name_'+group
//else if pars[0] = 'path' then k := 'path_'+group
//else if pars[0] = 'check_if_files_exist' then k := 'check_files_exist_'+group
//else ; // was ist k, wenn nichts trifft?
// wozu den ersten Teil umbennen?
// sowas würde sich nur lohnen, wenn du anschließend mit diesen Namen via RTTI nach den Feldern suchen tätest.
TRTTIContext.Create.GetType(TIniBasicRecordIrgendwas).GetField(k).SetValue(ini.basic, pars[1]);
// abgesehn vom check_if_files_exist
// es gibt auch Funktionen/Klassen/Frameworks, z.B. für INI/XML/JSON zu Record/Klasse, auch inkl. Umbenennen von SpeicherName zu FeldName
k := pars[0] + group;
if group = '
A'
then begin
if k = '
path_A'
then ini.basic.path_A := pars[1]
else if k = '
first_frame_A'
then ini.basic.first_A := pars[1]
else if k = '
end_frame_A'
then ini.basic.last_A := pars[1]
else if k = '
first_filename_A'
then ini.basic.start_name_A := pars[1]
else if k = '
check_if_files_exist_A'
then ini.basic.check_files_exist_A := true;
end else if group = '
B'
then begin
if k = '
path_B'
then ini.basic.path_B := pars[1]
else if k = '
first_frame_B'
then ini.basic.first_B := pars[1]
else if k = '
end_frame_B'
then ini.basic.last_B := pars[1]
else if k = '
first_filename_B'
then ini.basic.start_name_B := pars[1]
else if k = '
check_if_files_exist_B'
then ini.basic.check_files_exist_B := true;
end;
end;
// ein end zuviel?
wozu nochmal die group extra vergleichen, wenn die schon in K enthalten ist?
Delphi-Quellcode:
k := pars[0] + group;
if k = 'path_A' then ini.basic.path_A := pars[1]
else if k = 'first_A' then ini.basic.first_A := pars[1]
else if k = 'last_A' then ini.basic.last_A := pars[1]
else if k = 'start_name_A' then ini.basic.start_name_A := pars[1]
else if k = 'check_files_exist_A' then ini.basic.check_files_exist_A := true
else if k = 'path_B' then ini.basic.path_B := pars[1]
else if k = 'first_B' then ini.basic.first_B := pars[1]
else if k = 'last_B' then ini.basic.last_B := pars[1]
else if k = 'start_name_B' then ini.basic.start_name_B := pars[1]
else if k = 'check_files_exist_B' then ini.basic.check_files_exist_B := true;
bzw.
Delphi-Quellcode:
case IndexText(pars[0] + group, ['path_A', 'first_A', 'last_A' , 'start_name_A' , 'check_files_exist_A' , 'path_B' , 'first_B' , 'last_B' , 'start_name_B', 'check_files_exist_B']) oF
0: ini.basic.path_A := pars[1];
1: ini.basic.first_A := pars[1];
2: ini.basic.last_A := pars[1];
3: ini.basic.start_name_A := pars[1];
4: ini.basic.check_files_exist_A := true;
5: ini.basic.path_B := pars[1];
6: ini.basic.first_B := pars[1];
7: ini.basic.last_B := pars[1];
8: ini.basic.start_name_B := pars[1];
9: ini.basic.check_files_exist_B := true;
end;
oder wozu unnötig umbenennen (Group anhängen), wenn die Groups eh getrennt behandelt werden?
Delphi-Quellcode:
//if pars[0] = 'first_frame' then k := 'first'
//else if pars[0] = 'end_frame' then k := 'last'
//else if pars[0] = 'first_filename' then k := 'start_name'
//else if pars[0] = 'path' then k := 'path'
//else if pars[0] = 'check_if_files_exist' then k := 'check_files_exist';
if group = 'A' then begin
if pars[0] = 'path' then ini.basic.path_A := pars[1]
else if pars[0] = 'first_frame' then ini.basic.first_A := pars[1]
else if pars[0] = 'end_frame' then ini.basic.last_A := pars[1]
else if pars[0] = 'first_filename' then ini.basic.start_name_A := pars[1]
else if pars[0] = 'check_if_files_exist' then ini.basic.check_files_exist_A := true;
end else if group = 'B' then begin
if k = 'path' then ini.basic.path_B := pars[1]
else if pars[0] = 'first_frame' then ini.basic.first_B := pars[1]
else if pars[0] = 'end_frame' then ini.basic.last_B := pars[1]
else if pars[0] = 'first_filename' then ini.basic.start_name_B := pars[1]
else if pars[0] = 'check_if_files_exist' then ini.basic.check_files_exist_B := true;
end;
bzw.
Delphi-Quellcode:
i := IndexText(pars[0] + group, ['path', 'first', 'last', 'start_name', 'check_files_exist']);
case group of
'A':
case i oF
0: ini.basic.path_A := pars[1];
1: ini.basic.first_A := pars[1];
2: ini.basic.last_A := pars[1];
3: ini.basic.start_name_A := pars[1];
4: ini.basic.check_files_exist_A := true;
end;
'B':
case i oF
0: ini.basic.path_B := pars[1];
1: ini.basic.first_B := pars[1];
2: ini.basic.last_B := pars[1];
3: ini.basic.start_name_B := pars[1];
4: ini.basic.check_files_exist_B := true;
end;
end;