Save/Load geht nit

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

Kryan

Betreff: Save/Load geht nit

BeitragMo, März 01, 2004 19:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]

;am anfang wird das Feld Terrain$(10,10) erstellt werden
; und mit daten bepackt
;das geht ja noch :D
;aber nun möchte ich es speichern:
 Case 4
  Text 1,1,"Speichern"
  If klick Then
   ;////save////
  datei=OpenFile("Level1.lev")
  For Xs=1 To grosse
   For Ys=1 To grosse
    WriteInt datei,Terrain$(Xs,Ys)
   Next
  Next
  EndIf
 Case 5
  Text 1,1,"Laden"
  If klick Then
   ;////lade////
  datei=ReadFile("Level1.lev")
  For X=1 To grosse
   For Y=1 To grosse
    Terrain$(X,Y)=ReadInt(datei)
   Next
  Next
  EndIf
 End Select   
;mit dem rest hat es nix zu tun!



Aber nix kommt in die "Level1.lev"

MfG kRyan[/code]
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

hamZta

Administrator

Betreff: hm

BeitragMo, März 01, 2004 19:56
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
;am anfang wird das Feld Terrain$(10,10) erstellt werden

warum ein string array, wenn du später mit
Code: [AUSKLAPPEN]
WriteInt datei,Terrain$(Xs,Ys)

die daten als integer in die datei schreibst?

mach ein Terrain(10,10) daraus!
Blog.

Kryan

BeitragMo, März 01, 2004 20:03
Antworten mit Zitat
Benutzer-Profile anzeigen
jagut, ich habe es auch schon mit WriteString,... versucht!
Der Inhalt is nur n int: "111"
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, März 01, 2004 20:30
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
WriteInt datei,Terrain$(Xs,Ys)

ersetzten durch
Code: [AUSKLAPPEN]
Writesting datei,Terrain$(Xs,Ys)
;oder
Writeline datei,Terrain$(Xs,Ys)

da es sich ja um keine Zahlen handelt

wenn zu wenig gespeichert wird....
liegt das problem wahrscheinlich an der Variable grosse , weil es 0 ist oder 1
und damit dann nur einmal durchlaufen wird!
[BB2D | BB3D | BB+]
  • Zuletzt bearbeitet von Rallimen am Mo, März 01, 2004 20:33, insgesamt einmal bearbeitet

Shodan

BeitragMo, März 01, 2004 20:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuchs mit WriteLine und ReadLine
Ist gut für Strings, deren Länge man nicht kennt
www.selfmadegames.de

Kryan

BeitragMo, März 01, 2004 20:40
Antworten mit Zitat
Benutzer-Profile anzeigen
mmhh habe ich aber auch schon verscuht
da ist dann ja nix in der leveldatei Sad
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Rallimen

Sieger des 30-EUR-Wettbewerbs

BeitragMo, März 01, 2004 20:52
Antworten mit Zitat
Benutzer-Profile anzeigen
hi habs es mal getestet,mit dem schreiben...
und geht einwandfrei
Code: [AUSKLAPPEN]
Dim Terrain$(10,10)
grosse = 10
  For Xs=1 To grosse
   For Ys=1 To grosse
   Terrain$(Xs,Ys) = "t"
   Next
   Next
; und mit daten bepackt
;das geht ja noch :D
;aber nun möchte ich es speichern:

  Text 1,1,"Speichern"
  ;If klick Then
   ;////save////
  datei=OpenFile("Level1.lev")
  If datei = 0 Then  datei = WriteFile("Level1.lev"); falls es nicht vorhanden ist wird eine neue erstellt
  For Xs=1 To grosse
   For Ys=1 To grosse
    WriteLine datei,Terrain$(Xs,Ys)
   Next
  Next
  CloseFile ( datei)
print "Daten wurden erstellt": delay 3000; <<<<nur test
  ;LEndIf
; Case 5
;  Text 1,1,"Laden"
;  If klick Then
;   ;////lade////
;  datei=ReadFile("Level1.lev")
;  For X=1 To grosse
;   For Y=1 To grosse
;    Terrain$(X,Y)=ReadInt(datei)
;   Next
;  Next
;  EndIf
; End Select   
;;mit dem rest hat es nix zu tun!
;
[BB2D | BB3D | BB+]

Suco-X

Betreff: ....

BeitragMo, März 01, 2004 21:04
Antworten mit Zitat
Benutzer-Profile anzeigen
OpenFile öffnet nur Dateien die auch exestieren. Nutze WriteFile.
bye
Intel Core 2 Quad Q8300, 4× 2500 MHz, 4096 MB DDR2-Ram, GeForce 9600GT 512 MB

Blatolo

Betreff: Re: ....

BeitragMo, März 01, 2004 22:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Suco-X hat Folgendes geschrieben:
OpenFile öffnet nur Dateien die auch exestieren. Nutze WriteFile.
bye

Ich würde empfehlen erst mit Filetype zu prüfen ob eine Datei existiert.
Wenn ja dann benutzt man openfile ansonsten writefile.

BladeRunner

Moderator

BeitragDi, März 02, 2004 6:48
Antworten mit Zitat
Benutzer-Profile anzeigen
...und immer schön (siehe Rallimens Bsp.) geöffnete Dateien auch wieder schließen (CloseFile).

Spart Kiloweise Ärger Wink
Zu Diensten, Bürger.
Intel T2300, 2.5GB DDR 533, Mobility Radeon X1600 Win XP Home SP3
Intel T8400, 4GB DDR3, Nvidia GF9700M GTS Win 7/64
B3D BMax MaxGUI

Stolzer Gewinner des BAC#48, #52 & #92
 

Edlothiol

Betreff: Re: ....

BeitragDi, März 02, 2004 14:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Blatolo hat Folgendes geschrieben:
Suco-X hat Folgendes geschrieben:
OpenFile öffnet nur Dateien die auch exestieren. Nutze WriteFile.
bye

Ich würde empfehlen erst mit Filetype zu prüfen ob eine Datei existiert.
Wenn ja dann benutzt man openfile ansonsten writefile.

Warum nicht einfach gleich WriteFile? Die Datei soll doch eh überschrieben werden, oder? Also kann auch WriteFile benutzt werden. Dann spart man sich die If - Abfrage.

Blatolo

Betreff: Re: ....

BeitragDi, März 02, 2004 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Edlothiol hat Folgendes geschrieben:
Blatolo hat Folgendes geschrieben:
Suco-X hat Folgendes geschrieben:
OpenFile öffnet nur Dateien die auch exestieren. Nutze WriteFile.
bye

Ich würde empfehlen erst mit Filetype zu prüfen ob eine Datei existiert.
Wenn ja dann benutzt man openfile ansonsten writefile.

Warum nicht einfach gleich WriteFile? Die Datei soll doch eh überschrieben werden, oder? Also kann auch WriteFile benutzt werden. Dann spart man sich die If - Abfrage.

Mein Post war mehr allgemein bezogen.
Ich habe mir jetzt leider nicht das genaue Beispiel hier angesehen, aber im allgemeinen sollte man nicht einfach writefile benutzen.

Kryan

BeitragDi, März 02, 2004 18:28
Antworten mit Zitat
Benutzer-Profile anzeigen
ich finde blatolos idee auch besser Very Happy
Spart sicherlich viel Rechenaufwand
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Kryan

BeitragDi, März 02, 2004 20:17
Antworten mit Zitat
Benutzer-Profile anzeigen
als kleinen test, habe ich nach dem mainschleifchen folgende zeilen gesetzt:Code: [AUSKLAPPEN]
datei=OpenFile("Level1.lev")
For X=1 To grosse
 For Y=1 To grosse
  WriteLine datei,"222";Terrain$(X,Y)
 Next
Next

Die Datei besteht! aber es kommt nix in die Level1.lev , is das nun codeabhängig oder nit???
Webspaceanbieter?
Klick hier!
Kultige Spieleschmiede?
Klick hier!

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group