Seite 1 von 1

Öffnen von Textdateien

Verfasst: 13.02.2006 11:43
von Ironsmurf
Hallo zusammen
ich möchte gerne wissen, wenn ich verschiedene Textdokumente einlesen kann, bisher mache ich es über einen Gosub-Return Befehl, aber vieleicht
geht es auch einfacher.

Code: Alles auswählen

ElseIf String ("info octopussy")
Gosub octopussy
ElseIf String ("info sag niemals nie")
Gosub sagniemalsnie

;INFO - 007 - Octopussy
octopussy :
If ReadFile (0,"D:007 - Octopussy.txt")
While Eof (0) = 0
Text$ = ReadString()
ConsoleColor (15,0) : PrintN (text$)
Wend
CloseFile (0)
EndIf
Return

;INFO - 007 - Sag niemals nie
sagniemalsnie :
If ReadFile (0,"D:\007 - Sag niemals nie.txt")
While Eof (0) = 0
Text$ = ReadString()
ConsoleColor (15,0) : PrintN (text$)
Wend
CloseFile (0)
EndIf
Return
Vielen Dank im voraus

Verfasst: 13.02.2006 11:59
von AND51
Hallo!

Warum gibst du den Textdateien nicht dieselben Dateinamen, wie die Strings, die du in den If-Else Abfragen vergleichst? Übrigens: SOlange es reine Textdateien sind, ist die Dateiendung egal, die könntest du sogar weglassen. Trotzdem nehme ich hier txt als Dateiendung.

Z. B. So:

Code: Alles auswählen

String$="Sag niemals nie!"
Datei$="D:\"+String$+".txt"
If FileSize(Datei$) ; Wenn Datei existiert
   If ReadFile (0,Datei$)
      While Eof (0) = 0
         Text$ = ReadString()
         ConsoleColor (15,0) : PrintN (text$) 
      Wend
      CloseFile (0)
      ; Markierung 1
   EndIf 
EndIf
; Markierung 2
Ein Konsolenfenster muss natürlich schon geöffnet sein, dann kannst du diesen Teil immer wieder per Gosub aufrufen. Eleganter: Die Möglichkeit per Procedure:

Code: Alles auswählen

Procedure DateiAusgeben(String$)
; hier den obigen Code einfügen
EndProcedure
Da, wo oben "; Markierung 1" steht, schriebst du einfach ProcedureReturn 1 hin, bei der zweiten Markiereung schreibst du einfach ProcedureReturn 0 hin. Dient der Kontrolle, ob die Datei geöffnet wurde.

So wendest du das ganze an:

Code: Alles auswählen

; Öffne ein Konsolen Fenster und so!

Debug DateiAusgeben("Sag niemals nie!") ; Datei gefunden, es wird 1 ausgegeben
Debug DateiAusgeben("Sag immer nie!") ; Wenn Datei existiert, wird 1 ausgegeben, andernfalls 0
Debug DateiAusgeben("PureBasic ist doof") ; Hier wir natürlich immer 0 ausgegeben ;-)
Alles verstanden?