Öffnen von Textdateien

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
Ironsmurf
Beiträge: 111
Registriert: 04.01.2006 12:57
Computerausstattung: AMD FX(tm)-6300 Six-Core Processor
3.50 GHz / 8 GB Ram
Windows 7 / 64bit / Ultimate
Purebasic 5.20 LTS (Windows - x86)
Wohnort: Deutschland

Öffnen von Textdateien

Beitrag 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
Es kommt immer auf die Sichtweise des Betrachters an.
Benutzeravatar
AND51
Beiträge: 5220
Registriert: 01.10.2005 13:15

Beitrag 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?
PB 4.30

Code: Alles auswählen

Macro Happy
 ;-)
EndMacro

Happy End
Antworten