Entwickler-Ecke

Dateizugriff - Speichern Laden Problem


MaximusMR - Do 11.07.02 19:25
Titel: Speichern Laden Problem
Ich habe mir ein Programm geschreiben in dem mehrere Daten wie zum Beispiel der Name gespeichert werden soll. Das habe ich mit einen Grid geamcht der aus 10 Zeilen besteht. Ich möchte also 10 Namen Speichern und auch wieder Laden. Wie das mit dem Sichern und Laden Funktionier ist mir klar. hier ist ein stück aus dem Prog:

Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
  private
    { Private-Deklarationen }
    nVariName  : String;
    nName1 : String;
    nName2 : String;
    nName3 : String;
    nName4 : String;

  public
    { Public-Deklarationen }
    procedure Schreibe;
    procedure Lese;
  published
    property VariName:  String read nVariName write nVariName;
    property Name1: String read nName1 write nName1;
    property Name2: String read nName2 write nName2;
    property Name3: String read nName3 write nName3;
    property Name4: String read nName4 write nName4;
 end;
 const
    DATEINAME = '.\Saveinfo.mcr';
    SECTION_Namen = 'Namen';
    KEY_VariName  = 'VariName';
    KEY_NAME1 = 'Name1';
    KEY_NAME2 = 'Name2';
    KEY_NAME3 = 'Name3';
    KEY_NAME4 = 'Name4';

var
  FormName: TFormName;
  x:real;
  procedure sperren;

implementation

uses iniFiles;

{$R *.dfm}

procedure sperren;
begin
 FormName.edit1.Readonly:=true;
 FormName.edit1.color:=clScrollBar;
end;

Procedure TFormName.Schreibe;
var
 iniDatei:TiniFile;
begin
  IniDatei := TIniFile.Create(DATEINAME);
  IniDatei.WriteString(SECTION_Namen, KEY_VariName,  VariName);
  IniDatei.WriteString(SECTION_Namen, KEY_NAME1, Name1);
  IniDatei.WriteString(SECTION_Namen, KEY_NAME2, Name2);
  IniDatei.WriteString(SECTION_Namen, KEY_NAME3, Name3);
  IniDatei.WriteString(SECTION_Namen, KEY_NAME4, Name4);

end;

Procedure TFormName.Lese;
var
 iniDatei:Tinifile;
begin
  IniDatei := TIniFile.Create(DATEINAME);
  VariName  := IniDatei.ReadString(SECTION_Namen, KEY_VariName, '');
  Name1 := IniDatei.ReadString(SECTION_Namen, KEY_NAME1, '');
  Name2 := IniDatei.ReadString(SECTION_Namen, KEY_NAME2, '');
  Name3 := IniDatei.ReadString(SECTION_Namen, KEY_NAME3, '');
  Name4 := IniDatei.ReadString(SECTION_Namen, KEY_NAME4, '');
end;

Mein Problem ist nun das ich noch ein Programm habe das auf der Selben Basis funktioniert nur in dem viel mehr Daten gesichert werden.
Nun Wollte ich in der Schreiben/Lesem procedure mit einer Variable arbeiten, damit ich nicht alles 100 mal schreiben und mit if schleifen abfangen muss.

ich hatte mir das so vorgestellt:
Schreiben :

Quelltext
1:
IniDatei.WriteString(SECTION_(VARIABLE), KEY_Name1,  Name1);                    


Lesen

Quelltext
1:
Name1  := IniDatei.ReadString(SECTION_(VARIABLE), KEY_Name1, '');                    


Nur wie baue ich nun die Variable da ein ohne das ein Fehler kommt?

Code-Tags hinzugefügt. Tino


wwerner - Fr 12.07.02 07:39


Quelltext
1:
IniDatei.WriteString('SECTION_'+inttostr(VARIABLE), 'KEY_Name'+inttostr(Variable2),  'Name'+inttostr(Variable3));                    


Code-Tag hinzugefügt. Marc


MaximusMR - Sa 13.07.02 09:57

Danke. das wollte ich nur wissen