Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched.
Close
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?