Komischer Fehler mit readint()?!

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Frusciante

Betreff: Komischer Fehler mit readint()?!

BeitragMo, Jan 22, 2007 22:07
Antworten mit Zitat
Benutzer-Profile anzeigen
Also ich lese meine Mapdaten mit einer Funktion ein die so aussieht:

Code: [AUSKLAPPEN]


 file = ReadFile("map1.txt")

 For x=0 To 19
  For y=0 To 14
   map(x,y)=ReadInt(file)
  Next
 Next
 
 CloseFile(file)




In der datei sind nur nullen in den maßen 20*15. Lasse ich mir jetzt allerdings das Ergebnis von map(x,y) in einer schleife anzeigen (also so das ich den wert jeder Koordinate sehe) bekommme ich erst mal sehr sehr viele andere Zahlen auf den Bildschrim und dann erst die Nullen. Kann mir jemand sagen wo dran das liegt? Wie genau verhält sich readint eigentlich in so einer Schleife? Springt es von allein immer zu nächsten integer? Da würde ich mich in meinem Fall fragen woher readint weiß wann eine Zeile zu ende ist? Wie benutze ich in diesem Fall readint richtig?

Danke, Frusciante.
 

coldie

BeitragMo, Jan 22, 2007 22:33
Antworten mit Zitat
Benutzer-Profile anzeigen
ich glaube, man kann daten aus einem textfile auch nicht einfach so mit readint auslesen. Dazu bräuchtest du wahrscheinlich ein eigenes Dateiformat bei dem du genau weist an welcher stelle welche Daten sind.

D2006

Administrator

BeitragMo, Jan 22, 2007 22:38
Antworten mit Zitat
Benutzer-Profile anzeigen
Korrekt. Wenn in der Textdatei Nullen stehen, dann sind das ASCII Zeichen. Würdest du sie mit ReadByte einlesen, käme da jeweils eine 48 raus (ASCII Code für die 0). Ein Integer, der mit ReadInt gelesen wird, ist aber 4 Byte groß (das wären im Texteditor also 4 Zeichen, welche du meistens aber nicht erkennst bzw. es sind wirre Zeichen).
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
 

Frusciante

BeitragMo, Jan 22, 2007 22:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Ah, ok. Was würdet ihr mir dann empfehlen? Ich arbeite bei der Tilemap mit loadanimimage, d.h. es wäre am besten wenn ich die zahl die in dem textdokument steht auch gleich die das dimfeld laden könnte. Mit was für einem lesebefehl wäre das denn möglich?
 

coldie

BeitragMo, Jan 22, 2007 22:45
Antworten mit Zitat
Benutzer-Profile anzeigen
Aber warum muss es eine textfile sein? Schreib doch die daten vorher selber mit writeint in eine datei.

hectic

Sieger des IS Talentwettbewerb 2006

BeitragMo, Jan 22, 2007 22:55
Antworten mit Zitat
Benutzer-Profile anzeigen
Wenn du unbedingt ein Textdokument auslesen willst, so kannst du es wie folgt machen:

1. Mit ReadByte und dann manuell darauf bezonene Interpretation der Zeichen, zB mit kachel=ReadByte(file)-32

2. Mit ReadLine und dann jede Zeile 'ausparsen', also die Zeichen auslesen und Interpretieren

3. Am einfchsten, du bastelst dir ein einfachen Editor (~20min Arbeit) und speicherst gleich in Bytes oder Shorts...

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group