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

SysFileWrite Janz emPC

smeier
2013-01-17
2013-01-18
  • smeier - 2013-01-17

    Hallo,
    ich möchte eine .txt Datei anlegen und einen Wert schreiben. Dazu benutze die Funktionen der SysLibFile Bibliothek. Das Programm ist lauffähig, aber es wird keine Datei angelegt bzw. auch nichts geschrieben wenn ich vorher eine Datei von Hand anlege.
    Hat vielleicht jemand eine Idee was ich dabei falsch mache?

    Das Zielsystem ist ein Janz emPC-A400 mit Windows CE 5.0 (mit CoDeSys Control WinCE V3).
    hier einmal der Code:

    PROGRAM PLC_PRG
    VAR
    FileHandle : DWORD; (Handle)
    FilePath : STRING := 'text.txt';
    CurrentString : STRING := 'test'; (Temp String zum aufbauen der zu schreibenden Zeile)
    RetValWritten : DWORD; (Rückgabewert der Schreibfunktion)
    END_VAR

    ( Öffne die Datei um Daten anzufügen )
    FileHandle:= SysFileOpen(FilePath, 'w');

    IF FileHandle <> 0 THEN
    ( Zeile in die Datei schreiben )
    RetValWritten:= SysFileWrite(FileHandle, ADR(CurrentString), SIZEOF(CurrentString));
    END_IF

    IF RetValWritten <> 0 THEN
    ( Datei schließen )
    SysFileClose(FileHandle);
    END_IF

    Vielen Dank schon mal im Voraus.

     
  • guerillero - 2013-01-18

    Hi,

    Ich weiß nicht ob es daran liegt ich würde aber FileHandle und RetValWritten auf null setzen, wenn der Schreibvorgang beendet ist und das Öffnen der Datei nicht zyklisch machen sondern Triggern.

    Vielleicht ist auch noch eine Laufwerksangabe nötig, da er sonst die Datei im root Verzeichniss anlegen will wo du unter Umständen keine schreibrechte hast.

    Gruß

    Michael

     

Log in to post a comment.