[Gelöst] Writeint schreibt nur whitespace zeichen?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

M0rgenstern

Betreff: [Gelöst] Writeint schreibt nur whitespace zeichen?

BeitragDo, Nov 12, 2009 22:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey, ich bin grade dabei meine Speicherfunktion einzubauen.
Mir ist jetzt aber aufgefallen, dass die Funktion nur Whitespacezeichen in die Datei schreibt.
Ich weiß aber wirklich nicht wo mein Fehler liegt, weil ichs eigentlich so gemacht habe wie bei den tests vorher.

Code: [AUSKLAPPEN]
unction SaveGame()
   
   Local SaveDatei
   Local PX%
   Local PY%
   
   SaveDatei = WriteFile("save\Player.txt")
   Spieler\Px = PX%
   Spieler\Py = PY%
   
   WriteInt SaveDatei, PX
   WriteInt SaveDatei, PY

End Function


Spieler\PX und Spieler\Py stammen von einem Type, der aber auf jeden Fall besteht, weil er schon bei Programmstart erstellt wird und nicht gelöscht wird.

Kann mir vielleicht jemand helfen?

Lg, M0rgenstern
  • Zuletzt bearbeitet von M0rgenstern am Fr, Nov 13, 2009 14:25, insgesamt einmal bearbeitet
 

Meik

Betreff: Re: Writeint schreibt nur whitespace zeichen?

BeitragDo, Nov 12, 2009 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
hmm du erstellt neue variablen, überschreibst alte variablen mit den leeren neuen variablen und speicherst dann die leeren variablen?

meinst du vielleicht

Code: [AUSKLAPPEN]
WriteInt SaveDatei, Spieler\Px
WriteInt SaveDatei, Spieler\Py


MFG

Edit: 3 beiträge innerhalb weniger sekunden und ich bin der erste *hüpf*
  • Zuletzt bearbeitet von Meik am Do, Nov 12, 2009 22:39, insgesamt einmal bearbeitet

Holzchopf

Meisterpacker

BeitragDo, Nov 12, 2009 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
   Spieler\Px = PX%
   Spieler\Py = PY%

Da liegt der Fehler - du musst die Anweisungen umdrehen, so weist du jeweils Spieler\Px/y die PX/Y-Werte zu, welche logischerweise noch 0 sind.

mfG
Erledige alles Schritt um Schritt - erledige alles. - Holzchopf
CC BYBinaryBorn - Yogurt ♫ (31.10.2018)
Im Kopf da knackt's und knistert's sturm - 's ist kein Gedanke, nur ein Wurm

Xaymar

ehemals "Cgamer"

BeitragDo, Nov 12, 2009 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
-snip-

verlesen
Zitat:
WriteInt schreibt vier Bytes in eine Datei. Und txt mit bytecode mit notepad zu öffnen macht diese kaputt, indem notepad sie in whitespaces verwandelt.
Warbseite

M0rgenstern

BeitragDo, Nov 12, 2009 22:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Oh man...
Das ist jetzt... blöd.
Manche Fehler übersieht man selbst.
Vielen Dank Leute....
Das wars dann wohl. Werde das erst morgen testen.

Lg, M0rgenstern

M0rgenstern

BeitragFr, Nov 13, 2009 14:36
Antworten mit Zitat
Benutzer-Profile anzeigen
Hey, ich weiß, thema ist schon gelöst, aber ich hab mal ne frage.
Warum schreibt er mir mit writeint Solche Zeichen: Zitat:
•þÿÿ?ÿÿÿ
in die Datei?
Wenn ich sie auslese dann setzt er den Player jedenfalls an die richtige Stelle.

Achso, eine SAche vllt noch: Kann ich dem Programm sagen, wann es in die nächste Zeile springen soll?
Lg, M0rgenstern

D2006

Administrator

BeitragFr, Nov 13, 2009 14:47
Antworten mit Zitat
Benutzer-Profile anzeigen
WriteInt schreibt die Zahl binär ab. Ein Integer belegt vier Bytes, also sieht man 4 seltsame Zeichen (können auch mal Buchstaben sein). Solange mit WriteInt geschriebene Zahlen auch mit ReadInt gelesen werden, funktioniert's aber bestens.

Man sollte allerdings nicht eine Datei mit WriteInt/Byte/Float/String (binär) und WriteLine (zeichenbasiert) mischen, da dass in einem Chaos enden könnte.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

M0rgenstern

BeitragFr, Nov 13, 2009 15:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Okay. Das ist gut zu wissen.

Wenn ich aber jetzt zum Beipsiel jeweils in einer Zeile die Daten für jeweils ein Objekt speichern will.
Wie kann ich das Programm anweisen in die nächste Reihe beim schreiben/lesen zu springen?

Lg, M0rgenstern

D2006

Administrator

BeitragFr, Nov 13, 2009 15:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Es gibt keinen Grund, wenn du Daten binär speicherst, in "Zeilen" zu denken. Erstell für dein Dateiformat den genauen Aufbau eines Objekts: zB 2 Bytes für den Typ des Objekts, dann meinetwegen ein String mit dem Namen, dann 4 verschiedene Integer... Wenn du das genau festlegst, weißt du ja, wie du Objekte ausliest. Und schon brauchst du weder ReadLine noch jemals wieder an "Zeilen" denken.
Intel Core i5 2500 | 16 GB DDR3 RAM dualchannel | ATI Radeon HD6870 (1024 MB RAM) | Windows 7 Home Premium
Intel Core 2 Duo 2.4 GHz | 2 GB DDR3 RAM dualchannel | Nvidia GeForce 9400M (256 MB shared RAM) | Mac OS X Snow Leopard
Intel Pentium Dual-Core 2.4 GHz | 3 GB DDR2 RAM dualchannel | ATI Radeon HD3850 (1024 MB RAM) | Windows 7 Home Premium
Chaos Interactive :: GoBang :: BB-Poker :: ChaosBreaker :: Hexagon :: ChaosRacer 2

M0rgenstern

BeitragFr, Nov 13, 2009 15:33
Antworten mit Zitat
Benutzer-Profile anzeigen
Ja stimmt auch wieder.

Vielen Dank^^

Lg, M0rgenstern

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group