Problem mit Dateien: Invalid Stream Handle

Übersicht BlitzBasic BlitzPlus

Neue Antwort erstellen

 

Mogon

Betreff: Problem mit Dateien: Invalid Stream Handle

BeitragMo, Jul 12, 2004 14:49
Antworten mit Zitat
Benutzer-Profile anzeigen
Servus Leutz,

ich bin noch recht neu bei der BlitzPlus-Programmierung und bin gerade dabei, ein Programm zum Archivieren meiner Sachen, die ich noch bei Ebay verkaufen will, zu programmieren.

Es soll so aussehen, dass links eine Listbox ist und rechts die ganzen Daten zu dem jeweiligen Artikel aufgeführt werden, wenn ich auf einen Eintrag in der Listbox klicke.

Jeder Artikel bekommt eine eigene .sav-Datei im Unterordner "entries". Die erste Zeile dieser Datei enthält den Namen des Artikels. Dieser Name soll immer in den Listbox-Einträgen stehen.

Und genau das ist meine Problem. Doch hier erstmal mein Quelltext (das Programm ist noch nicht ganz fertig):

Code: [AUSKLAPPEN]
AppTitle "Seller's Help"

window = CreateWindow("Seller's Help",100,100,500,300)

liste = CreateListBox(0,0,200,295, window)

punkteweg = 1



ordner = ReadDir("entries")


Repeat

datei$ = NextFile(ordner)
punkteweg = punkteweg + 1

If punkteweg >= 4 Then
file$ = ReadFile(datei$)

zeile$ = ReadLine(file$)

CloseFile file

AddGadgetItem liste,zeile$
EndIf

Until datei$ = ""

CloseDir(ordner)

UpdateWindowMenu window

Repeat
ereignis = WaitEvent()
If ereignis = $803 Then End


Forever



Bei zeile$ = ReadLine(file$) meint der Debugger nur: "Invalid Stream Handle" und startet das Programm nicht.

Ich weiß nun nicht mehr weiter Crying or Very sad ; hoffentlich könnt ihr mir helfen.

Danke im Voraus !

Lord_Vader

BeitragMo, Jul 12, 2004 14:58
Antworten mit Zitat
Benutzer-Profile anzeigen
Ich weis net warum unbedingt die 4te datei geöffnet werden soll, aber vielleicht isses ja nen ordner?

Das kann man mit Filetype prüfen Smile
 

Edlothiol

BeitragMo, Jul 12, 2004 16:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Ausserdem sollte das Dateihandle eine Zahl, kein String sein, also file anstatt file$.
 

Mogon

Betreff: 4te Datei?

BeitragMo, Jul 12, 2004 18:20
Antworten mit Zitat
Benutzer-Profile anzeigen
Wieso vierte Datei?

Vielleicht meinst du ja das mit der Variable punkteweg (Vergessen zu erklären Embarassed ).

Ich wollte, wie der Name schon sagt, die Punkte für den Ordner und den übergeordneten Ordner wegbekommen (. und ..)

4pac

BeitragDi, Jul 13, 2004 23:14
Antworten mit Zitat
Benutzer-Profile anzeigen
Zitat:
Bei zeile$ = ReadLine(file$) meint der Debugger nur: "Invalid Stream Handle" und startet das Programm nicht.


Nee, hier ist definitiv der Fehler, daß Du ReadLine einen Dateihandle übergeben musst, und nicht den String$ wie die Datei heißt. 100%ig.
 

Mogon

Betreff: Geschafft!

BeitragDo, Jul 15, 2004 15:43
Antworten mit Zitat
Benutzer-Profile anzeigen
Unter anderem daran kann es gelegen haben.

Doch gelöst war das Problem damit noch nicht.

Irgendwie hat ReadFile ein paar mal 0 übergeben, warum auch immer. Auf jeden Fall habe ich stundenlang herumprobiert und hab es letztendlich geschafft.

Ich bin mit diesem Thread das erste Mal hier im BlitzForum gewesen und muss mich bei allen 51 Leuten, die den Thread besucht haben und denjenigen, die mir geholfen haben bedanken.

Und zum Schluss noch für die, die es interessiert:

So sieht mein Code jetzt aus:



Code: [AUSKLAPPEN]
AppTitle "Seller's Help"

window = CreateWindow("Seller's Help",100,100,500,360,0,1)

liste = CreateListBox(2,41,250,290, window)

count = 0

ordner = ReadDir("D:\Proggen\Seller's help\entries")

;Hier wird noch die Schrift ganz oben eingefügt
label = CreateLabel("Seller's help" + Chr(13) + "(c) 2004 by Justus Blümer",365,2,200,35,window)

;SCHALTER
schalter1 = CreateButton("Neuer Artikel",8,8,100,20,window,1)
schalter2 = CreateButton("Artikel löschen",116,8,100,20,window,1)
schalter3 = CreateButton("Beenden",224,8,100,20,window,1)


;++++++++++++++++++++++++++++++++++++++++++++++++++++
; Anfang der Schleife--------------------------------
;++++++++++++++++++++++++++++++++++++++++++++++++++++
Repeat

;Der Dateiname wird ausgelesen
datei$ = NextFile(ordner)



;Da wird die Datei geöffnet
file = OpenFile("D:\Proggen\Seller's help\entries\" + datei$)

; Hier kommt die Bedingung, ob die Zeile ausgelesen werden soll
If count >= 2 And file <> 0 Then
;Der Listeneintrag wird hinzugefügt
zeile$ = ReadLine(file)
AddGadgetItem liste,zeile$
CloseFile file
EndIf


;Es wird eins hochgecountet
count = count+1


Until datei$ = ""
;++++++++++++++++++++++++++++++++++++++++++++++++++++
;Ende der Schleife-----------------------------------
;++++++++++++++++++++++++++++++++++++++++++++++++++++


;Der Ordner wird geschlossen
CloseDir(ordner)



;Das Fenster wird upgedated
UpdateWindowMenu window


;SCHALTER-SCHLEIFE
Repeat
ereignis = WaitEvent()
If ereignis = $803 Then frage = Confirm("Wollen Sie Seller's Help wirklich beenden?",1)
If frage = 1 Then End


Forever
;HEIR IST NICHT DAS ENDE - DIE SCHLEIFE LÄUFT EWIG :)

Neue Antwort erstellen


Übersicht BlitzBasic BlitzPlus

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group