Seite 1 von 2

alle variablen speichern

Verfasst: 24.01.2006 13:53
von philipp
hallo, wenn ich alle verwendeten variablen in eine datei schreiben möchte, muss i jede einzeln ausgeben, oder gibt es eine möglichkeit alle variablen in eine datei zu schreiben.
i hoffe ihr versteht, was ich meine.
thx
philipp

Verfasst: 24.01.2006 14:00
von bobobo
Guck mal in die PB-Hilfe ..unter Preference findest du die Möglichkeit
Daten in eine Preference-Datei (wie ne Ini-Datei) reinzuschreiben und auszulesen

Verfasst: 24.01.2006 17:16
von Tafkadasom2k5
Wenn du vor hast, automatisch alle Variablen abzuspeichern, ohne "von Hand" jede einzelne zu benennen, musst du arrays verwenden...

Guck mal in der Hilfe!

Aber eigentlich muss man JEDESMAL alle Variablen "von Hand" abspeichern :)

Gr33tz
Tafkadasom2k5

Verfasst: 24.01.2006 17:38
von philipp
danke für eure hilfe.
dann werde ich es wohl mit einem array probieren.
gruß
philipp

Verfasst: 24.01.2006 17:58
von Tafkadasom2k5
Wenn du dein genaus Vorhaben posten würdest....
Wär unter Umständen sinnvoll :)

Aber wenn du das so schaffst, dann isses natürlich auch gut!

Gr33tz
Tafkadasom2k5

Verfasst: 24.01.2006 21:37
von philipp
hallo,
ich versuche bei einem kleinen game eine speicherfunktion einzubauen.
dafür muss ich den standpunkt des spielers, der gegner, usw. speichern.
ich dachte mir es gibt vieleicht einen befehl, der alle benützten variablen
ausgibt.
thx
gruß
philipp

Verfasst: 24.01.2006 21:53
von ts-soft
Wenn, dann mußte schon selber dafür sorgen, das alle Variablen in einem
Bestimmten Speicherbereich, z.B. Array zur Verfügung stehen, und kannst
diese dann Binär speichern.
Ausser der Unlesbarkeit (auch nicht wirklich) Deiner Speicherdatei, gewinnste
damit aber nicht viel.

Verfasst: 24.01.2006 22:45
von edel
Du kannst es ja in etwa so machen :

Code: Alles auswählen

Structure player 
  playerPosx.l
  playerPosy.l
  playerpunkte.l
EndStructure

Procedure load(*daten) 
  ReadFile(0,"SaveGame.dat")
  ReadData(*daten,SizeOf(player))
  CloseFile(0)
EndProcedure

Procedure save(*daten)
  CreateFile(0,"SaveGame.dat")
  WriteData(*daten,SizeOf(player))
  CloseFile(0)
EndProcedure



a.player
b.player

a\playerPosx    = 100
a\playerPosy    = 150
a\playerpunkte  = 5000

save(@a)
load(@b)

Debug b\playerPosx    
Debug b\playerPosy    
Debug b\playerpunkte 
Mit Strings wird das so allerdings nicht gehen , aber da gibt es
hier im Forum auch einige Loesungen, glaube sogar da war was
von unserem Smiliegott ts-soft ;-)

Verfasst: 24.01.2006 23:08
von ts-soft
Für Strings einfach eine feste länge Festlegen, und diese in ein ByteArray.
Irgendwo hier gibts das Beispiel, notfalls in den Examples meiner RFile Lib (PBOSL) :wink:

Verfasst: 24.01.2006 23:18
von MonkeyBoogie

Code: Alles auswählen

Structure player 
  playerPosx.s
  playerPosy.s
  playerpunkte.s
EndStructure

Procedure load(*daten) 
  ReadFile(0,"SaveGame.dat")
  ReadData(*daten,SizeOf(player))
  CloseFile(0)
EndProcedure

Procedure save(*daten)
  CreateFile(0,"SaveGame.dat")
  WriteData(*daten,SizeOf(player))
  CloseFile(0)
EndProcedure



a.player
b.player

a\playerPosx    = "PosX"
a\playerPosy    = "PosY"
a\playerpunkte  = "Punkte"

save(@a)
load(@b)

Debug b\playerPosx    
Debug b\playerPosy    
Debug b\playerpunkte 
Und wieso sollte das nicht mit Strings gehen?
Bei mir klappt das, oder wie ... ?