Seite 1 von 2
Datei ist doch geöffnet!
Verfasst: 13.04.2008 15:24
von Tombi
PB 3.30 meint in Linie 20 einen Fehler aufzufinden.
Die Datei ist jedoch schon geöffnet!
[quote=Fehlermeldung]Error at line 20 : There is no current File.[/quote]
Anfang meiner Datei:
Code: Alles auswählen
Global line.w
Global a_a.w
Global b_b.w
file$ = OpenFileRequester("Öffne...","C:","Map-Datei (*.map)|*.map|Textdatei (*.txt)|*.txt",0)
ReadFile(0,file$)
Procedure SearchOnFile(text$)
ReadFile(1,file$)
If text$ = ""
MessageRequester("Error","An SearchOnFile() wurde ein leerer String überreicht. Das Programm muss daher beendet werden.",0)
End
EndIf
Repeat
zeile$ = ReadString() ;LINIE 20!
aaa = FindString(zeile$,text$,0)
If aaa
gefunden = 1
EndIf
Until Eof(1)
CloseFile(1)
If gefunden
ProcedureReturn 1
Else
MessageRequester("Error",text$+" wurde in der aktuellen Datei nicht gefunden!",0)
ProcedureReturn 0
End
EndIf
EndProcedure
Verfasst: 13.04.2008 15:35
von scholly
Ich hab zwar kein 3.30, aber da braucht man bestimmt auch "
Ergebnis = OpenFile(#Datei, DateiName$)"

Verfasst: 13.04.2008 15:37
von Tombi
Habe ich schon getestet, bringt mir nichts...
Verfasst: 13.04.2008 15:50
von DarkDragon
Ja wie du schon sagtest: Die Datei ist doch schon geöffnet. Wieso öffnest du sie dann in der Prozedur nochmal? Und file$ ist ja nichtmal global, also versucht es innerhalb der Prozedur die Datei ohne Namen zu öffnen.
Und dann prüf doch bitte ob das Ergebnis von ReadFile <> 0 ist, denn dann ist die Datei erst offen und erst dann.
Verfasst: 13.04.2008 15:52
von scholly
Tombi hat geschrieben:Habe ich schon getestet, bringt mir nichts...
Dir nicht, aber PB braucht das.
Der OpenFilerequester holt nur den Dateinamen, aber er öffnet das File nicht.
Öffnen und Schließen bleibt Dir überlassen.
Die Beispiele im Code-Archiv mögen zwar erst ab 3.94 laufen, aber bei Deiner Version (welche ist es denn ?) sollte im Examples-Verzeichnis auch ein "
File.pb" und ein
"Requester.pb" sein, die Dir in Kombination zeigen, wie es geht.
Sorry, daß ich nicht mit Code helfe, aber ich bin nicht lang genug dabei um zu wissen, was damals unter 3.30 ging

Verfasst: 13.04.2008 16:02
von Tombi
Die File.pb hat aber auch kein OpenFile(), sondern nur CreatFile() und ReadFile(). Und ReadFile() habe ich ja drinne.
File.pb:
Code: Alles auswählen
;
; ------------------------------------------------------------
;
; PureBasic - File example file
;
; (c) 2001 - Fantaisie Software
;
; ------------------------------------------------------------
;
MessageRequester("PureBasic", "Welcome !"+Chr(13)+"PureBasic will write a file named: PureBasicTestFile.pb", 0)
If CreateFile(0, "PureBasicTestFile.txt")
WriteStringN(" This is a PureBasic file test")
WriteString("Now it's on ")
WriteString("the same line.")
CloseFile(0)
Else
MessageRequester("PureBasic", "Error: can't write the file", 0)
End
EndIf
If ReadFile(0, "PureBasicTestFile.txt")
First$ = Trim(ReadString())
MessageRequester("PureBasic", "Line read: "+First$, 0)
CloseFile(0)
Else
MessageRequester("PureBasic", "Error: Can't read the file", 0)
EndIf
End
Verfasst: 13.04.2008 16:06
von Tombi
Fehler gefunden: Die gleiche Datei konnte nicht mehrmals geöffnet werden

Verfasst: 13.04.2008 16:27
von STARGÅTE
@Tombi
mach bitte deine Signatur wieder richtig

Verfasst: 13.04.2008 16:30
von Tombi
Jup mache ich.
Außerdem lag es nicht wie oben beschrieben daran, dass ..., sondern file$ war nicht global!
Verfasst: 13.04.2008 16:30
von Tombi
Jup mache ich.
Außerdem lag es nicht wie oben beschrieben daran, dass ..., sondern file$ war nicht global!