Hallo Forum-User
ich beschäftige mich auch, zumindest denke ich das, mit dem gleichen Problem. Deshalb werde ich mal an dieses Thema anknüpfen. Ich möchte sicher gehen, dass das was ich vorhab wirklich so nicht geht.
Und zwar:
Ich habe einen record:
Delphi-Quellcode:
type
TKonfiguration = record
Startdatei : string;
RouterIP : string;
Startzeit : integer;
end;
Dazu habe ich eine Datei aus der Einstellungen für das Programm gelesen werden.
Diese Einstellungen haben einen Namen und einen Wert:
Delphi-Quellcode:
# So könnte die Datei aussehen:
Startdatei = irgendeine.exe
RouterIP = 192.168.1.1
Startzeit = 60
Die Namen und Werte werden ausgelesen.
Leerzeichen, '=' und andere Dinge entfernt bzw. bearbeitet.
Am Ende wird das ganze in temporäre Variablen geschrieben was
vereinfacht dargestellt so aussieht:
Delphi-Quellcode:
...
var
Name, Wert : String;
...
begin
...
Name := 'Startdatei';
Wert := 'irgendeine.exe';
...
end;
...
Nebenbei: Das ganze befindet sich in einer Schleife und darin wird jede Zeile einzeln abgearbeitet.
Und nun möchte ich, dass die Werte den Namen in dem record zugewiesen werden.
Das habe ich nun so gelöst:
Delphi-Quellcode:
if Name = 'Startdatei' then
begin
Konfiguration.Startdatei := Wert;
end;
if Name = 'RouterIP' then
begin
Konfiguration.RouterIP := Wert;
end;
if Name = 'Startzeit' then
begin
Konfiguration.Startzeit := Wert;
end;
Die Namen werden nun am Ende jeder Schleife ausgewertet und der Wert in dem Record gespeichert.
Nun habe ich hier das große Problem, dass sobald ich die Namen für einen Wert ändere, z.B. wenn ich aus 'RouterIP' 'Gateway' machen möchte, obige Anweisungen doppelt ändern muss.
Zweites Problem habe ich, wenn ich mehrere Einstellungen in der Datei habe, habe ich entsprechend viele Anweisungen zu schreiben. Das zerrt natürlich an der Geschwindigkeit.
Nun meine Frage: Wie schaffe ich es, dass der Inhalt der Variable als Bezeichner hinter dem '.' bei Konfiguration benutzt wird?
Ich versuche es mal bildlich darzustellen:
Konfiguration."Name" := Wert;
In PHP gibt es hier die Möglichkeit das in einem Array zu speichern.
So würde das in PHP aussehen:
Konfiguration[Name] := Wert;
Für 'Name' würde nun der Wert welcher in der Variablen steht eingesetzt werden.
Wie setze ich das in Delphi um?
Muha, und bitte erschlagt mich nicht wenn ich manche Dinge nicht beim richtigen Namen genannt hab
sondern korrigiert mich