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?