Einzelnen Beitrag anzeigen

panzerfischer

Registriert seit: 18. Sep 2006
Ort: Ilmenau
33 Beiträge
 
#5

Re: Mehrere Namen In IniFile speichern

  Alt 21. Sep 2006, 16:18
also prinzipiell kannst du zum speichern auch ne ini datei verwenden, ist halt nur mehr aufwandt (finde ich)
sollte dann ca so aussehen

Delphi-Quellcode:

type info = record user,company,entry:String[255];end;
var testinfo:array[0..100] of info;

...

for i:=0 to usermax do begin

  try
    ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+ '\IniFiles\' + 'Informationen.ini');
    Ini.ReadString(testinfo[i].entry, 'Name', Testinfo[i].user);
    Ini.ReadString(testinfo[i].entry, 'Firma', Testinfo[i].company);
  finally
    Ini.Free;
  end;

end;

..
bzw zum schreiben:
Delphi-Quellcode:
for i:=0 to usermax do begin

  try
    ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+ '\IniFiles\' + 'Informationen.ini');
    Ini.WriteString(testinfo[i].entry, 'Name', Testinfo[i].user);
    Ini.WriteString(testinfo[i].entry, 'Firma', Testinfo[i].company);
  finally
    Ini.Free;
  end;

end;
oder du machst das mit ner Stringlist,
Delphi-Quellcode:
type info = record user,company:String[255];end;
var testinfo:array of info;
    sl:TStringlist;
..
sl:=TStringlist.create;
sl:=loadfromfile('{Pfad/Dateiname}');
setlength(testinfo,sl.count-1);
...

for i:=0 to sl.count-1 do begin //lesen
  testinfo[i].user:=copy(sl[i],1,pos(';',sl[i])-1);
  testinfo[i].company:=copy(sl[i],pos(';',sl[i])+1,length(sl[i])-pos(';',sl[i])-1);
end;

{lass dich von dem ganzen zeug nicht irritieren, das nur zum unterscheiden zw. name und firma (also einmal text bis zum semikolen, bzw. von da bis zum ende}
     
..
sl.clear; //bzw schreiben
for i:=0 to usermax do
  sl.append(testinfo[i].user+';'+testinfo[i].company);

sl.savetofile('{Pfad/Dateiname}');

...
in beiden varianten hast du nun die liste der namen und firmen in nem array stehen, lediglich das dateiformat unterscheidet sich, die Stringlist file sieht wie folgt aus:

name1;firma1
name2;firma2
name2;firma3

und die inifile:

[Testinfo[1].entry]
Name = name1
Firma= firma1

[Testinfo[2].entry]
Name = name2
Firma= firma2

[Testinfo[3].entry]
Name = name3
Firma= firma3

was du im endeffekt nimmst ist egal, die version mit der TStringlist hat den vorteil, das du das array nicht beschränken musst (dynamic array) , bei der inifile weißt du nicht im vornherein, wieviele einträge drinne stehen.

noch ne idee wäre das in ner data file zu speichern, du deklarierst deine einträge in nem record und speicherst das record in ne *.dat datei, mit der kannste auch arbeiten, musst dich aber ein bissel reinfuchsen, funnzt aber auch mit normalen pascal, also das ist so die grundlage schlecht hin, aber nicht sehr benutzerfreundlich, und die datei ist im endeffekt schlecht gegliedert und kann schlecht bearbeitet werden
  Mit Zitat antworten Zitat