Ich würds mit nem Key machen, in dem Steht, wieviele Speicherstände es gibt:
Code:
[general]
savedgames=2
save1=Hans
save2=Peter
[Hans]
Points=1
Money=0
[Peter]
Point=7
Money=3
Beim Laden des Spielstände machst du eine Schleife von 1 bis savedgames. Wenn du einen neuen hinzufügen willst, erhöhst du savedgames um 1 und fügst entsprechend eine neue Section hinzu.
Der Code würde dann z.B. so aussehen: (UNGETESTET)
Delphi-Quellcode:
//Laden der Spielstände
Var i:Integer;
Begin
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'..\DATA\save.ini');
Try
For i:=1 To Ini.Readinteger('general','savedgames',1) Do
Begin
ListBox1.Items.Add(Ini.ReadString('general','save'+IntToStr(i),'ERROR'));
End;
Finally
Ini.Free;
end;
end;
//Speichern eines Spielstandes
Begin
if ListBox1.ItemIndex>-1 Then
Begin
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'..\DATA\save.ini');
Try
If not SectionExists('NAME') Then
Begin
Ini.WriteInteger('general','savedgames',Ini.ReadInteger('general','savedgames',0)+1);
Ini.WriteString('general','save'+inttostr(Ini.ReadInteger('general','savedgames',0)),'NAME');
End;
Ini.WriteInteger('NAME','Points',Points);
Ini.WriteInteger('NAME','Money',Money);
End;
Finally
ini.free;
End;
End;
Wobei du NAME durch den Namen des Spielers ersetzen musst, der gerade speichert.
Mfg