Registriert seit: 2. Mär 2007
Ort: Thüringen
80 Beiträge
Lazarus
|
Re: verschiedene Datentypen in eine Datei abspeichern
6. Mär 2007, 19:52
Zitat von Nils_13:
Was für eine Delphi-Version hast du ? Ab 6/7 gibt es eine Unit IniFiles, welche du nur in die Uses-Klausel aufnehmen musst.
Ich hab Delphi 7
Naja, das mit dem INI-File habe ich vorhins mit dem Tutorial hinbekommen
Der Quellcode sieht so aus
Delphi-Quellcode:
{ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Spielstand speichern
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }
procedure Spielstand_speichern(wer:integer);
var ini:TIniFile;
i,j:integer;
begin
ini:=TIniFile.Create(ExtractFilePath(ParamStr(-1))+pfad);
with ini do
begin
//Spielername
WriteString('Spieler '+IntToStr(wer),'Name',Game.Spieler[wer]);
//Gebäudestufen
for i:=Metallmine to Forschungslabor do
WriteInteger('Gebäudestufen ('+IntToStr(wer)+')',IntToStr(i),Game.Gebaeude[i,wer]);
//Forschungsstufe
for i:=Waffentechnik to Energietechnik do
WriteInteger('Forschungsstufen ('+IntToStr(wer)+')',IntToStr(i),Game.Forschungsstufen[i,wer]);
//Verteidigungen
for i:=Lasergeschuetz to Schildgenerator do
WriteInteger('Verteidigungsanlagen ('+IntToStr(wer)+')',IntToStr(i),Game.Verteidigung[i,wer]);
//Schiffe auf Wegpunkten
for i:=Transporter to Zerstoerer do
for j:=1 to 12 do
WriteInteger('Flotten auf Wegpunkt '+IntToStr(j)+' ('+IntToStr(wer)+')',IntToStr(i),Game.Flotten[i,j,wer,bewegbar]);
//Rohstoffe auf Wegpunkten
for j:=1 to 12 do
begin
WriteInteger('Rohstoffe auf Wegpunkt '+IntToStr(j),'Metall',Game.Rohstoffe[j].metall);
WriteInteger('Rohstoffe auf Wegpunkt '+IntToStr(j),'Silicium',Game.Rohstoffe[j].silicium);
WriteInteger('Rohstoffe auf Wegpunkt '+IntToStr(j),'Wasserstoff',Game.Rohstoffe[j].wasserstoff);
end;
free
end;
end;
{ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Spielstand laden
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ }
procedure Spielstand_laden;
var ini:TIniFile;
i,j,k,x:integer;
begin
ini:=TIniFile.Create(ExtractFilePath(ParamStr(0))+pfad);
with ini do
try
for k:=1 to 3 do //Spieler
begin
//Spielernamen
ReadString('Spieler '+IntToStr(k),'Name',Game.Spieler[k]);
//Gebäudestufen
for i:=Metallmine to Forschungslabor do
ReadInteger('Gebäudestaufen ('+IntToStr(k)+')',IntToStr(k),Game.Gebaeude[i,k]);
//Forschungsstufe
for i:=Waffentechnik to Energietechnik do
ReadInteger('Forschungsstufen ('+IntToStr(k)+')',IntToStr(k),Game.Forschungsstufen[i,k]);
//Verteidigungen
for i:=Lasergeschuetz to Schildgenerator do
ReadInteger('Verteidigungsanlagen ('+IntToStr(k)+')',IntToStr(k),Game.Verteidigung[i,k]);
//Schiffe auf Wegpunkten
for i:=Transporter to Zerstoerer do
for j:=1 to 12 do
ReadInteger('Flotten auf Wegpunkt '+IntToStr(j)+' ('+IntToStr(k)+')',IntToStr(k),Game.Flotten[i,k,j,bewegbar]);
end;
//Rohstoffe auf Wegpunkten
for j:=1 to 12 do
begin
ReadInteger('Rohstoffe auf Wegpunkt '+IntToStr(j),'Metall',Game.Rohstoffe[j].metall);
ReadInteger('Rohstoffe auf Wegpunkt '+IntToStr(j),'Silicium',Game.Rohstoffe[j].silicium);
ReadInteger('Rohstoffe auf Wegpunkt '+IntToStr(j),'Wasserstoff',Game.Rohstoffe[j].wasserstoff);
end;
finally
free
end;
end;
Es schein zu funktionieren Wenn das Spiel im Ganzen funktioniert stellen wir es evtl. hier online
So, tHx für eure Hilfe (moralische Unterstützung pur )
Christian
|