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.
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
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.
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