textdatei Zeilenweise auslesen

kunse

Level-1
Beiträge
31
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

habe ein Problem bei dem auslesen einer Textdatei. Bin mit den Bausteinen fb_FileOpen, fb_FileGets und fb_FileClose in der Lage eine Textdatei auszulesen. Nun wäre es für das Programm gut, wenn man die Datei zeilenweise auslesen kann, da die Zeilen zum einem einzeln 'gebraucht werden', zum anderen der sLine Output des fb_FileGets ein String ist und somit auf 255 Zeichen begrenzt ist.
Da die hFile der Bausteine vom Datentyp UINT ist, stelle ich mich gerade etwas blöd an, damit zu arbeiten

MfG

Edit:
Ganz vergessen: Versuche es gerade mit dem fb_Fileread, habe aber noch keine Ergebnissse ;-D
 
Zuletzt bearbeitet:
mit dem HFile brauchst du nichts machen - muss nur vom FileOpen an den FileGets übergeben werden
mit jedem Execute springt FileGets eine Zeile weiter in der Datei
ich lese immer den ganzen File ein -> schiebe die Daten in eine 255er STRING-Array und such mir hinterher das raus was ich brauche, geht ja mit einer For-Schleife total easy
 
Beispiel für das zeilenweise Lesen

mit dem HFile brauchst du nichts machen - muss nur vom FileOpen an den FileGets übergeben werden
mit jedem Execute springt FileGets eine Zeile weiter in der Datei
ich lese immer den ganzen File ein -> schiebe die Daten in eine 255er STRING-Array und such mir hinterher das raus was ich brauche, geht ja mit einer For-Schleife total easy

Da es kein Kontrollbit für das erfolgreiche Lesen einer Zeile gibt, wie steuert man denn das automatisierte Lesen bis zum EOF? Ich habe folgendes versucht:

Code:
fbFileGets(sNetId:='', hFile:=hFile, bExecute:=bFileGets, tTimeout:=t#2s);
bFileGetsBusy:=fbFileGets.bBusy;
bFileGetsError:=fbFileGets.bError;
nFileGetsErrorId:=fbFileGets.nErrId;
strBuffer:=fbFileGets.sLine;
bFileGetsEOF:=fbFileGets.bEOF;

WHILE bFileGetsEOF=FALSE DO
IF bFileGetsBusy=TRUE THEN
    bFileGets:=FALSE;
ELSIF bFileGetsBusy=FALSE AND bFileGets=FALSE THEN
    bFileGets:=TRUE;
END_IF;
END_WHILE

Funktioniert aber leider nicht. Hat jemand ein Beispiel?

Danke schon einmal im voraus!
 
Zurück
Oben