short werte werde nicht korrekt aud speicherbank gelesen

Übersicht BlitzBasic Allgemein

Neue Antwort erstellen

 

x_to

Betreff: short werte werde nicht korrekt aud speicherbank gelesen

BeitragMo, Sep 29, 2008 12:23
Antworten mit Zitat
Benutzer-Profile anzeigen
ich sitze schon das ganze wochenende vor dem problem und krieg es leider nicht in den griff:

dieser codeschnipsel öffnet eine datei, liest bis zum dateiende alle short werte, vertauscht beide bytes eines words und kopiert sie in eine speicherbank.
das funktioniert soweit ganz gut, allerdings kann ich die korrekten shortwerte nicht mehr auslesen.

Code: [AUSKLAPPEN]
path_data_file$ = RequestFile ("Select the leveldata","",0)
stream_data = ReadFile (path_data_file$)

bank_word = CreateBank(FileSize(path_data_file$))


For i = 0 To (FileSize(path_data_file$)/2)-1
word = ReadShort(stream_data)
   byte_1 = word And 255
   byte_1 = byte_1 Shl 8
   byte_2 = word Shr 8
   word = byte_1 Or byte_2
PokeShort bank_word,i,word
Next

; bis hier hat alles geklappt aber der code funzt nicht :(

For i = 0 To (FileSize(path_data_file)/2)-1
word = PeekShort (bank_word,i)
Print i + " " + Hex$(word)
Next

CloseFile stream_data
MouseWait
End


was mache ich falsch ??
könnte mir jemand bitte helfen ?

Eingeproggt

BeitragMo, Sep 29, 2008 12:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Versuche mal die For-Schleifen so umzuschreiben:

Code: [AUSKLAPPEN]
For i = 0 To FileSize(path_data_file$)-1 Step 2


Da eine Short immer 2 bytes belegt und du mit der ersten Schleife immer die Hälfte der vorigen Short überschreibst und dann dieses Misch-Masch wieder ausliest.

mfG, Christoph.
Gewinner des BCC 18, 33 und 65 sowie MiniBCC 9
 

x_to

BeitragMo, Sep 29, 2008 12:57
Antworten mit Zitat
Benutzer-Profile anzeigen
super, jetzt gehts...


vielen vielen dank.... Very Happy

Neue Antwort erstellen


Übersicht BlitzBasic Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group