Auslesen aus Datei (*Erledigt*)

Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Neue Antwort erstellen

DamienX

Betreff: Auslesen aus Datei (*Erledigt*)

BeitragMi, Jul 18, 2007 1:42
Antworten mit Zitat
Benutzer-Profile anzeigen
Hallo zusammen....

Wollte nur "schnell" eine simple Funktion zum auslesen einer Datei
schreiben und kann auf biegen und brechen keinen Fehler finden.

Die Variable bleibt leer und ich rätsel seit ner geschlagenen Stunde warum!
Schätze es muss irgendwas mit der Rückgabe oder dem Gültigkeitsbereich
der Variablen zu tun haben...

Code: [AUSKLAPPEN]

SuperStrict
Graphics 800,600,0



Function GetTextOutOfFile:String (path:String)
   
   Local File:TStream = ReadStream (path:String)  'Öffnet Filestream
        If File = Null Then RunTimeError( "Konnte Datei nicht finden" )
   Local FileData:String                     'Variable zum Speichern der einzelnen Strings
   
      While Not Eof                         'Schleife zum abarbeiten der kompletten Datei
         Local CurrentLine:String = ReadLine (File:TStream)  'Temporäre Variable speichert wert der der Zeile
         Local FileData:String = Filedata:String + CurrentLine:String 'Anhängen der ausgelesenen Zeile
      Wend
      
   CloseStream (File:TStream) 'schliessen des Streams nach Beendigung des Vorgangs
   
   
   Return Filedata:String     'Rückgabe des Dateiinhalts an die Funktion
End Function


   
Global Data:String = GetTextOutOfFile:String("txt\File.txt") 'Füllen der Data Variable mit dem Datei inhalt
'!!!Variable bleibt leer!!!   

While Not KeyDown (key_escape)

   DrawText Data:String,0,0    'gibt leider nichts aus!


Flip
Wend


Bevor die Frage kommt... das File existiert!

Grüße DX
Lets make things better...
  • Zuletzt bearbeitet von DamienX am Mi, Jul 18, 2007 8:18, insgesamt 2-mal bearbeitet

mahe

BeitragMi, Jul 18, 2007 2:48
Antworten mit Zitat
Benutzer-Profile anzeigen
Code: [AUSKLAPPEN]
While Not Eof         

Nur Eof geht nicht.
Es muss in deinem Fall glaub ich
Code: [AUSKLAPPEN]
While Not File.Eof()

heißen
ʇɹǝıdɯnɹɹoʞ ɹnʇɐuƃıs - ǝpoɥʇǝɯ-ɹoɹɹıɯ ɹǝp uı ,ɹoɹɹǝ,

DamienX

BeitragMi, Jul 18, 2007 3:06
Antworten mit Zitat
Benutzer-Profile anzeigen
Schon mal danke für den Denkanstoss...

Habe
"While Not Eof"
durch
"While Not Eof (File)"
ersetzt

damit hab ich einen Fehler schon mal behoben... das traurige ist nur dass
trotzdem die Variable leer bleibt Sad
Lets make things better...

rema

BeitragMi, Jul 18, 2007 5:16
Antworten mit Zitat
Benutzer-Profile anzeigen
Nach dem öffnen der Datei musst du noch testen ob dies auch wirklich geschehen ist.

Code: [AUSKLAPPEN]

...
   Local File:TStream = ReadStream (path:String)  'Öffnet Filestream
   If File = Null Then RunTimeError( "Konnte Datei nicht finden" )
...

DamienX

BeitragMi, Jul 18, 2007 7:50
Antworten mit Zitat
Benutzer-Profile anzeigen
Geändert... aber kein Fehler.
Alles beim alten!
Lets make things better...
 

klepto2

BeitragMi, Jul 18, 2007 8:02
Antworten mit Zitat
Benutzer-Profile anzeigen
Ganz einfach, du deklarierst jedesmal in der Schleife filedata neu.

Code: [AUSKLAPPEN]

 While Not Eof                         'Schleife zum abarbeiten der kompletten Datei
         Local CurrentLine:String = ReadLine (File:TStream)  'Temporäre Variable speichert wert der der Zeile
         FileData = Filedata:String + CurrentLine:String 'Anhängen der ausgelesenen Zeile
      Wend


Dadurch ist am ende der Schleife Filedata immer Currentline, und eine auf die Schleife beschränkte lokale Variable. Das heißt, du gibst immer die leere erste lokale filedata zurück hängst den text aber an die 2. ,in der Schleife deklarierten Variable an.
Matrix Screensaver
Console Modul für BlitzMax
KLPacker Modul für BlitzMax

HomePage : http://www.brsoftware.de.vu

DamienX

BeitragMi, Jul 18, 2007 8:18
Antworten mit Zitat
Benutzer-Profile anzeigen
Den Wald vor lauter Bäumen nicht gesehen Very Happy

Dankesehr
Grüße
Lets make things better...

Neue Antwort erstellen


Übersicht BlitzMax, BlitzMax NG Beginners-Corner

Gehe zu:

Powered by phpBB © 2001 - 2006, phpBB Group