Problem mit Dateien: Invalid Stream Handle
Übersicht

MogonBetreff: Problem mit Dateien: Invalid Stream Handle |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 ![]() Danke im Voraus ! |
||
![]() |
Lord_Vader |
![]() Antworten mit Zitat ![]() |
---|---|---|
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 ![]() |
||
Edlothiol |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Ausserdem sollte das Dateihandle eine Zahl, kein String sein, also file anstatt file$. | ||
MogonBetreff: 4te Datei? |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
Wieso vierte Datei?
Vielleicht meinst du ja das mit der Variable punkteweg (Vergessen zu erklären ![]() Ich wollte, wie der Name schon sagt, die Punkte für den Ordner und den übergeordneten Ordner wegbekommen (. und ..) |
||
![]() |
4pac |
![]() Antworten mit Zitat ![]() |
---|---|---|
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. |
||
MogonBetreff: Geschafft! |
![]() Antworten mit Zitat ![]() |
|
---|---|---|
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 :) |
||
Übersicht


Powered by phpBB © 2001 - 2006, phpBB Group