Sehr seltsame Abstürze bei ReadLine - Befehl

Übersicht BlitzBasic Blitz3D

Neue Antwort erstellen

 

BaronCid

Betreff: Sehr seltsame Abstürze bei ReadLine - Befehl

BeitragDo, Jun 04, 2009 22:53
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo!

Ich habe in meinem momentanen Programm sehr merkwürdige Abstürze in einer Funktion, die für das Auslesen von Zeilen aus einer Datei verantwortlich ist. Die Datei ist 12kb groß, 3600 Zeilen lang und enthält nur kurze Integerwerte (in Ziffern und als Strings, also nicht als Bytes)


Die Funktion sieht wie folgt aus:


Code: [AUSKLAPPEN]

Function Lieszeile$(Dateiname$,Zeilennummer)
Root$ = "C:\COES\" + Dateiname$
filein = ReadFile(Root$)
i = 0
Repeat
Ausgabe$ = ReadLine(filein)
i = i+1
Until  i=Zeilennummer
Return Ausgabe$
End Function



Die Datei habe ich mal zu Testzwecken auch hochgeladen: https://www.blitzforum.de/upload/file.php?id=5725


Das Programm stürzt mit der Fehlermeldung "Stream does not exist" immer bei Zeilennummer = 510 ab.
Und das gerade dann, wenn ich es in diesem Programm laufen lasse:


Code: [AUSKLAPPEN]
For i=1 To 900
Print Lieszeile$("Topos\Felderliste",i)
Next


WaitKey

End


In meinem (2050 Zeilen langen) Hauptprogramm stürzt das ganze bei Zeilennummer = 507 ab. Sehr komisch.




Wüsste jemand von euch vielleicht eine Antwort auf mein Problem? Ich wäre sehr dankbar!

BaronCid

Xeres

Moderator

BeitragDo, Jun 04, 2009 23:05
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich würde closefile empfehlen - vor dem verlassen der Funktion.
Win10 Prof.(x64)/Ubuntu 16.04|CPU 4x3Ghz (Intel i5-4590S)|RAM 8 GB|GeForce GTX 960
Wie man Fragen richtig stellt || "Es geht nicht" || Video-Tutorial: Sinus & Cosinus
T
HERE IS NO FAIR. THERE IS NO JUSTICE. THERE IS JUST ME. (Death, Discworld)
 

BaronCid

BeitragFr, Jun 05, 2009 11:03
Antworten mit Zitat
Benutzer-Profile anzeigen
Habe ich schon... also mit

Code: [AUSKLAPPEN]
Closefile filein


nach der Return-Zeile.

Hilft aber nicht, das Programm stürzt wieder nach genau 510 Zeilen ab.

Smily

BeitragFr, Jun 05, 2009 11:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Code: [AUSKLAPPEN]
Closefile filein


nach der Return-Zeile.


Das nützt dir nicht viel. Das Programm springt ja nach der Returnzeile aus der funktion raus. Also wird code nach der returnzeile nicht erreicht.


Ich würde dir aber sowieso davon abzuraten, für jede zeile ein neuen dateistream zu öffnen. Wieso behälst du nicht einfach den alten?

grüße,
Smily
Lesestoff:
gegen Softwarepatente | Netzzensur | brain.exe | Unabhängigkeitserklärung des Internets

"Wir müssen die Rechte der Andersdenkenden selbst dann beachten, wenn sie Idioten oder schädlich sind. Wir müssen aufpassen. Wachsamkeit ist der Preis der Freiheit --- Keine Zensur!"
stummi.org

BladeRunner

Moderator

BeitragFr, Jun 05, 2009 17:01
Antworten mit Zitat
Benutzer-Profile anzeigen
Und da liegt der Hasde auch im Pfeffer, zuviele Streams lassen deinen Rechner abbrechen. Verwende eine Globle Variable für den stream oder (noch besser) lese einmal zu Beginn alles in einem Aufwasch ein. Schon auch deine Festplatte enorm.
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

Neue Antwort erstellen


Übersicht BlitzBasic Blitz3D

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group