Stream Error BlitzMax Crash ohne Fehlermeldung

Übersicht BlitzMax, BlitzMax NG Allgemein

Neue Antwort erstellen

Midimaster

Betreff: Stream Error BlitzMax Crash ohne Fehlermeldung

BeitragSo, Mai 30, 2010 14:13
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich habe einen sonderbaren Fehler gefunden bei dem der The ReadFile() Befehl abstürzt. Es hat mich echt 6 Stunden gekostet, bevor ich das Problem isolieren und den Fehler eingrenzen konnte. Er tritt erst auf, wenn es zu einer Kombination von 5 Begebenheiten kommt.

Hier ist ein Code, der den Fehler deutlich macht:

BlitzMax: [AUSKLAPPEN]
Import koriolis.zipstream
SuperStrict

Graphics 300,200
Global Sound:TSound, Text$, Path$, Void$, tmpText$, locText$
Global Stream:TStream

Path="ZIP::tt1.zip//"

Print "Step 1"
tmpText= LoadText(Path + "translation.ini")

Print "Step 2"
Stream=ReadFile(Path + "RockSongA.Lst")

Print "Step 3"
Sound = LoadSound(Path + "crash.ogg")
While Not Eof(Stream)
locText= ReadLine(Stream)
Wend

Print "Step 4"
CloseStream Stream

Print "Reading Stream finished"
WaitKey()
End

Das zugehörige ZIP-file findet ihr hier:
https://www.blitzforum.de/upload/file.php?id=8658

Was ich dabei beobachte ist, dass das Programm die Stelle "Reading Stream Ready" nie erreicht.

Wenn man aber diese Zeilen auskommntiert
BlitzMax: [AUSKLAPPEN]
tmpText=LoadText...

oder...
BlitzMax: [AUSKLAPPEN]
Sound=LoadSound...

...dann geht es.

Das Problem ist erst aufgetaucht, seit ich die Translation.Ini in das ZIP-File gepackt habe. Bei der handelt es sich um einen Unicode-konformen Text. Man kann auch UTF8 or UTF16 verwenden, um den Fehler zu sehen.

Das Problem kann auch beobachtet werden, wenn der normale TXT-File "RockSongA.lst" außerhalb des ZIP file im Root Directory des Programm liegt.

Das Problem tritt nicht auf, wenn man das Unicode-File außerhalb des ZIP-Files nutzt

Das Problem tritt auch nicht auf, wenn man das OGG file außerhalb der "ReadFile()......Closefile()" Zone verwendet.

Das Problem tritt in allen BltzMaxVersions 1.34 bis 1.39 auf.

Ebenso konnte ich beobachten, dass auch bei Laden von PNG-Dateien in diesem Zusammenhang Abstürze geschehen.

Den Fehler habe ich auch schon an BugReport auf BlitzBasic.com gemeldet.

mpmxyz

BeitragSo, Mai 30, 2010 14:32
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich denke, dass du den Ersteller des genutzten Moduls - koriolis.zipstream - benachrichtigen solltest und nicht bei BlitzMax den Schuldigen suchst.
Die BlitzMax-Streams haben so gut wie nichts damit zu tun außer, dass die Klasse TStreamFactory einem die Möglichkeit gibt, das Stream-Angebot zu erweitern. (in diesem Fall ein Stream für Zip-Daten)
Das einzige, was ich seltsam finde, sind diese beiden Aussagen:
Zitat:
Das Problem kann auch beobachtet werden, wenn der normale TXT-File "RockSongA.lst" außerhalb des ZIP file im Root Directory des Programm liegt.

Das Problem tritt nicht auf, wenn man das Unicode-File außerhalb des ZIP-Files nutzt

Die passen nicht so wirklich zusammen. (Beim Lesen "ZIP::" weggelassen?)

Wo gibt es das Modul zu finden? Mein Google spuckt mir nur eine leere Ergebnisliste aus. ("koriolis zipstream BlitzMax")
Wenn es davon Sourcecode gibt, könnte ich mal in der nächsten Zeit schauen, ob dort die BlitzMax-Streams falsch verwendet werden.
mfG
mpmxyz
Edit: Die blitzBasic.com-Suche hat mir wichtige Informationen gegeben:
Zitat:
I then tried with LoadImage and apparently it doesn't work because the ZipStream is not seekable

Wann hast du dieses Modul heruntergeladen? Hast du dich um das andere Modul gekümmert? Inzwischen soll diese Funktion hinzugefügt worden sein:
Zitat:
LAST UPDATE on 31 aug 2008 : ZipStream is now seekable, making it usable practically anywhere you want. Tested with zipped ogg files, and it works. Note that you'll need "koriolis.bufferedstream", available in a separate thread.

Edit2: Die Informationen solltest du anscheinend alle kennen. (Ich habe einen Beitrag über die mangelnde Mac-Kompatibilität entdeckt.)
Edit gegen falsche Hoffnungen: Ich gebe nicht einfach so meine Daten irgendjemandem - daher werde ich mir das Modul auch nicht anschauen.
Moin Moin!
Projekte: DBPC CodeCruncher Mandelbrot-Renderer
  • Zuletzt bearbeitet von mpmxyz am So, Mai 30, 2010 16:20, insgesamt einmal bearbeitet

Midimaster

BeitragSo, Mai 30, 2010 15:31
Antworten mit Zitat
Benutzer-Profile anzeigen
also...

Lieb, dass du mir helfen willst, aber an so einfachen Ursachen wird es wohl nicht liegenn. Natürlich habe ich das Bufferedstream ebenfalls installiert. Ich benutze das koriolis zipstream seit Ewigkeiten.
Der Tiip geht jetzt auch mehr an Leute die das Koriolis schon nutzen!

Und es stürzt auch nicht das aus der ZIP-File geladene ab, sondern ein danach aus einem woimmer auch hergeladenes LoadFile! Es stürzen auch Bilder ab und Audios. Und das alles nur, weil man aus der ZIP-Datei ein UTF mit LoadText() (erfolgreich!) geladen hat.



Hier kannst du das ZIPSTREAM herunterladen:

http://www.koriolis-fx.com/for...topic=15.0
du musst als User eingeloggt sein, um die Dateien herunterzuladen. Sonst siehst du noch nicht mal die links

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Allgemein

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group