Habe Probleme mit der Benützung der Funktion SysFileEOF aus der Bibliothek SysLibFile. Lasse das Ganze in der SoftSPS PLCWinNT V2.4.4.0 unter Wizcon laufen. Die Funktionen File öffnen, lesen und schliessen habe ich im Griff, aber SysFileEOF will nicht.
Mein Code:
( SchreibPosition bestimmen; resp. Ende der Datei finden )
Leider kommt das Programm aber nicht mehr aus der Schlaufe, weil der das eigentlich Ende offensichtlich nicht findet. Und wenn die Datei leer ist, gehts gar nicht.
Die Datei ist ein txt-file. Geht das überhaupt, oder muss ich ein anderes Format wählen? Fürs Lesen hats allerdings prima funktioniert.
Vielen Dank im Voraus für die Hilfe.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo,
Habe Probleme mit der Benützung der Funktion SysFileEOF aus der Bibliothek SysLibFile. Lasse das Ganze in der SoftSPS PLCWinNT V2.4.4.0 unter Wizcon laufen. Die Funktionen File öffnen, lesen und schliessen habe ich im Griff, aber SysFileEOF will nicht.
Mein Code:
( SchreibPosition bestimmen; resp. Ende der Datei finden )
dPos:=1;
WHILE NOT(SysFileEOF(File:=dwFileNr)=1) DO
END_WHILE
Leider kommt das Programm aber nicht mehr aus der Schlaufe, weil der das eigentlich Ende offensichtlich nicht findet. Und wenn die Datei leer ist, gehts gar nicht.
Die Datei ist ein txt-file. Geht das überhaupt, oder muss ich ein anderes Format wählen? Fürs Lesen hats allerdings prima funktioniert.
Vielen Dank im Voraus für die Hilfe.
Hi
Schau doch mal in die Beschreibung.
Was gibt SysDileEOF() zurück ? INT oder BOOL.
Dein Code Denkt der Returnwert sein ein "INT" .
Ist das Korekt ?
(Ist möglicherweise Hardwareabhängig/Herstellerabhängig !)
Meiner Erfahrung nach erkennt Codesys die Werte 0 und 1 auch als boolsche Werte. Anyway, mit folgendem hats auch nicht funktioniert:
WHILE NOT(SysFileEOF(File:=dwFileNr)) DO
END_WHILE
Komisch. Hat jemand sonst noch nen Tipp?