Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Multimedia (https://www.delphipraxis.net/16-multimedia/)
-   -   Delphi Abspeichern eines Spielstandes (https://www.delphipraxis.net/76799-abspeichern-eines-spielstandes.html)

Ben-G 10. Sep 2006 08:20


Abspeichern eines Spielstandes
 
So und noch eine weiter Frage. Ich will mich so langsam an das abspeichern heranwagen. Ich habe das schon recht oft gemacht allerdings hab ich dieses mal eine deutlich größere Anzahl an Variablen, so dass es Wochen dauern würde sie einzeln aufzulisten. Gibt es eine bequemere Methode sämtliche variablen abzuspeichern?

turboPASCAL 10. Sep 2006 08:26

Re: Abspeichern eines Spielstandes
 
Tja, kommt nun darauf an wie du deine Variablen vorliegen hast.

Entewder verwendest du einfach eine .INI-Datei oder du kannst dir einen Record anlegen und speicherst diesen einfach als Datei ab.

:gruebel:

Ben-G 10. Sep 2006 08:34

Re: Abspeichern eines Spielstandes
 
Gerade das ist ja nicht mein Problem, ich weiß wie man abspeichert, allerdings möchte ich wissen ob es eine bequemere Variante gibt dies zu tun. als sie einzeln aufzulisten. SInd mittlerweile sicher über 1000 Stück...

Nikolas 10. Sep 2006 08:45

Re: Abspeichern eines Spielstandes
 
Sind die Variablen einzelen deklariert? Alternativ könntest du sie in ein (mehrere) Arrays stecken, wodurch die Namen der Bezeichner unkenntlicher werden oder du baust dir einen Type, in dem du alles reinschreibst, also

Delphi-Quellcode:
type Variablen
Geld: integer;
Leben: real;
Spielername: String;
end;
Im Code selbst musst du dir dann am Anfang so einen Type deklarieren und vor alle variablen ein 'NameDerTypeInstanz. ' schieben. Beim Speichern und laden hast du dann nur noch 3-Zeiler.

Ben-G 10. Sep 2006 09:13

Re: Abspeichern eines Spielstandes
 
Ich hab sowohl einzelne Variablen als auch welche in Types, finde die idee nicht schlecht, müsste allerdings dennoch alle einzelnen Variablen in dieses Type eintragen.

3_of_8 10. Sep 2006 09:20

Re: Abspeichern eines Spielstandes
 
Ein Record ist am besten geeignet, IMHO. Man kann ihn leicht schreiben, leicht lesen und das einzige Problem ist, das einzige Problem ist, dass du, wenn du mehr Variablen hast, keine alten Spielstände mehr laden kannst, jedenfalls nicht ohne automatische Konvertierung. Außerdem kannst du keine Klassen speichern.

Ben-G 10. Sep 2006 09:25

Re: Abspeichern eines Spielstandes
 
Ok ich glaub ichhab die Frage ein bisschen doof formuliert, was ich gern wissen würde ob es Standardmäßig irgnedein übergeordnetes Array,Record oder so gibt in dem alle Variablen zusammengefasst sind die das Projekt beinhaltet, so im Sinne von "Project1.vars.savetofile" ^^ ??
oder muss ich ich wirklich jede Variable in dieses Array oder Record "hineintippen"?

3_of_8 10. Sep 2006 09:36

Re: Abspeichern eines Spielstandes
 
Natürlich gibt es das nicht. Wir sind doch hier nicht in PHP. :mrgreen:

Du könntest den kompletten dir zugewiesenen Speicher abspeichern, aber das wäre dann wohl etwas übertrieben.

SirThornberry 10. Sep 2006 10:09

Re: Abspeichern eines Spielstandes
 
ich kann mir nicht vorstellen das man 1000 und mehr globale Variablen hat. Hast du eventuell mehrere Objecte/Instanzen vom Typ XY und darin variablen? Dann wäre es das einfachste dem Object das speichern bei zu bringen und dann die Objecte zu speichern. Und wenn es mehrere Objectinstanzen sind, sind diese ja sicherlich in einem Array oder einer liste.
Wenn dem nicht so ist würde ich dir vorschlagen recht schnell zur Objectorientierten Programmierung über zu gehen um solche Probleme zu erschlagen (wie gesagt, ich kann mir sonst nicht vorstellen das man 1000 und mehr Variablen in einer Ebene hat ohne das diese in einer liste sind)

3_of_8 10. Sep 2006 10:36

Re: Abspeichern eines Spielstandes
 
Wenn man Objekte hat, kann man ein Objektpersistenzframework verwenden.


Alle Zeitangaben in WEZ +1. Es ist jetzt 09:33 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz