ReadInt - Nur komische Zahlen...

Übersicht BlitzBasic Beginners-Corner

Neue Antwort erstellen

 

Schoasch

Betreff: ReadInt - Nur komische Zahlen...

BeitragDo, Aug 30, 2007 7:35
Antworten mit Zitat
Benutzer-Profile anzeigen
Hi, also ich hab neulichst einen Map Editor erstellt (noch in der Beta phase)
mit dem ich maps speichern kann. Ich hab es zuerst in einer txt Datei versucht, damit ich vorerst die Werte selber verändern kann. Ich speichere die Karte in zahlen, hier ein Beispiel:
Code: [AUSKLAPPEN]

0000000000000000000000000000000000000000
0000100000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000100000000000000000000
0000000000000000000000000000010000000000
0000010000000000000000000000000000000000
0000000000001000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000010000000000000000000000000000000000
0000000000000000000000001000000000000000
0000000000000001000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000001000000000000100000000000000000
0000000000000001000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000001000000000000000
0000000001000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000010000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000001000000000000010000000
0000001000000000000000000000000000000000
0000000000000000000000000000000000000000
0000000000000000000000000000000000000000


Jetzt will ich aber in einer Function diese Datei lesen, hab das mal so probiert:


Code: [AUSKLAPPEN]

Mapladen = OpenFile("Maps\Map1.txt")
   Wert = ReadInt(mapladen)
CloseFile Mapladen
Print Wert

aber alles was da raus kommt = 808464432

Keine Ahnung warum das so ist, kann mir da wer weiter helfen?

Danke schon mal im vorraus:
Schoasch

BladeRunner

Moderator

BeitragDo, Aug 30, 2007 7:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Eine .txt ist genau das: Text. Eine Integer hingegen besteht aus 4 byte die zu einer Zahl aufaddiert werden.
Wenn Du nun mit Readint eine Textzeile einzulesen versuchst schnappt sich Blitz die vier ersten Byte (Zeichen) und versucht daraus ne Zahl zu machen- das kann nicht funktionieren.
Zudem wird in deinem Beispiel eine einzige Zahl ausgelesen- deine Karte aber besteht ja aus viel mehr.
Wenn Du weiter Textdateien verwenden willst, damit du sie (bequem?) per Notepad erstellen kannst, benutze ql:readline in einer For-Schleife um jede einzelne Zeile einzulesen. Die einzelnen Zeilen musst du dann noch mittels der Stringbefehle (ql:mid etc.) Zerlegen und mit ql:int wieder in Zahlen umwandeln.

Du siehst also, der Ladecode wird etwas Komplexer als ein Dreizeiler werden.

Etwas einfacher wird es wenn Du die Zahlen direkt als solche Speicherst und wieder einlädst, allerdings musst Du dir dann einen einfachen Editor selbstschreiben, denn Notepad wird damit nichts mehr anfangen können.
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

Jan_

Ehemaliger Admin

BeitragDo, Aug 30, 2007 9:05
Antworten mit Zitat
Benutzer-Profile anzeigen
du musst sie als 1 Zeichen lesen --> readbyte
char um das zeichen zu bekommen!

Code: [AUSKLAPPEN]
char(readbyte(file))


achtung, der Zeilen umbruch kommt dann auch mit!
between angels and insects
  • Zuletzt bearbeitet von Jan_ am Do, Aug 30, 2007 11:00, insgesamt einmal bearbeitet

Silver_Knee

BeitragDo, Aug 30, 2007 10:45
Antworten mit Zitat
Benutzer-Profile anzeigen
char.... fast es heißt Chr(byte)

Jan_

Ehemaliger Admin

BeitragDo, Aug 30, 2007 11:00
Antworten mit Zitat
Benutzer-Profile anzeigen
meine fresse, das kommt davon wenn mann soviel Sprachen benutzt
between angels and insects
 

Schoasch

BeitragDo, Aug 30, 2007 18:51
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich werds versuchen, Danke

Neue Antwort erstellen


Übersicht BlitzBasic Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group