Daten in einer Schleife hintereinanderschreiben?

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

CO2

ehemals "SirMO"

Betreff: Daten in einer Schleife hintereinanderschreiben?

BeitragSa, Jul 24, 2010 13:11
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo,

Ich habe ein Problem:

Ich habe einen Tilemapeditor (Danke an Eingeproggt Smile). Wenn man Jetzt eine Tilemap erstellt und sie dann speichert soll sie in einer .bb Datei gespeichert werden von folgender FUnktion:

Code: [AUSKLAPPEN]
Function SaveMap()
   
   Local file$ = Input("Name der Datei: ")
   
   Local writer=WriteFile("Maps\" + file$ + ".bb")
   
   WriteLine writer, "Dim map(" + map_width + "," + map_height + ")"
   
   WriteLine writer, ""
   
   WriteLine writer, "Restore mapdata"
   
   WriteLine writer, "For y=0 To " + map_width + ""
   
   WriteLine writer, "For x=0 To " + map_height + ""
   
      WriteLine writer, "Read map(x, y)"
   
      WriteLine writer, "Next"
   
      WriteLine writer, "Next"
      
      WriteLine writer, ""
   
   WriteLine writer, ".mapdata"
   
   Local var = map_width
   
   For x=0 To map_width - 1
      
      For y=0 To map_height - 1
         
         var = var + 1
         
         If var = map_width Then
         
            WriteLine writer, "Data " + map(x,y) + ", "
            
            var = 0
            
         Else
            
            WriteLine writer, "" + map(x,y) + ", "
            
         EndIf
         
      Next
      
   Next
   
   
   CloseFile writer
   
   Print "Datei gespeichert!"
   
End Function


Leider kommt nicht das raus, was ich haben möchte. ich möchte nicht, dass alle daten in der datei bei "data" untereinandergeschrieben werden, sondern nebeneinander - und zwar soweit, wie die map breit ist.
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

ZaP

BeitragSa, Jul 24, 2010 13:21
Antworten mit Zitat
Benutzer-Profile anzeigen
WriteLine schreibt eine Zeile in einen Stream, d.h. alles, was danach noch geschrieben wird, kommt in die nächste Zeile. Um genau zu schreibt es einen Zeilenumbruch Chr(10) oder Chr(13) oder beides.
Helfen würde es, wenn Du alles Byte für Byte schreibst, dann steht das auch hintereinander.
Du kannst aber auch (und das ist einfacher) dir zuerst eine Stringvariable nehmen, und dann Stück für Stück deine Zeile zusammenbasteln, also sowas wie

BlitzBasic: [AUSKLAPPEN]

Local Zeile$ = ""

For i = 0 To 10
Zeile$ = Zeile$ + " " + Str(i)
Next

WriteLine Stream, Zeile$


Hoffe das hilft Smile
Starfare: Worklog, Website (download)
 

CO2

ehemals "SirMO"

BeitragSa, Jul 24, 2010 13:33
Antworten mit Zitat
Benutzer-Profile anzeigen
joa ok thx
mfG, CO²

Sprachen: BlitzMax, C, C++, C#, Java
Hardware: Windows 7 Ultimate 64-Bit, AMX FX-6350 (6x3,9 GHz), 32 GB RAM, Nvidia GeForce GTX 750 Ti

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group