String in eine .txt schreiben/öffnen

Conroe

Level-1
Beiträge
9
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Leute,
ich habe ein Problem mit der SysLibFile.lib. Es soll der Text 'Hallo Welt' in die Datei C:\test.txt geschrieben werden, die Datei habe ich bereits erstellt und sie ist leer. Leider klappt das nicht, bekomme immer von hFile eine 0 zurück(Fehler) müsste ja eigentlich '-1' beim Zielsystem CoDeSys SP RTE (lautDoku).

Komme einfach nicht weiter, für Eure Hilfe wäre ich sehr dankbar.
Viele Grüße@all!

IF speichern THEN
(* Öffnen zum Daten schreiben *)
hFile := SysFileOpen(FileName2,'w');
anz_bytes:=SysFileWrite(File:= hFile ,Buffer:= ADR(Text),Size:=LEN(Text));
hFileclose1:=SysFileClose(File :=hFile); (*schließen der Datei mit Datei-Nummer*)

END_IF;
:confused:
 

Anhänge

  • SysLibFile.jpg
    SysLibFile.jpg
    251,3 KB · Aufrufe: 93
Hallo,

das ganze Geheimniss ist:

Du musst eine steigende Flanke einfügen:

VAR
R_TRIG_Save: R_TRIG;
speichern: BOOL;
Text: STRING := 'Hallo Welt';
hFile: DWORD;
anz_bytes: DWORD;
hFileclose1: BOOL;
END_VAR

R_TRIG_Save(CLK:=speichern );
IF R_TRIG_Save.Q THEN
(* Öffnen zum Daten schreiben *)
hFile := SysFileOpen('c:\temp\neu.txt','w');
anz_bytes:=SysFileWrite(File:= hFile ,Buffer:= ADR(Text),Size:=LEN(Text));

hFileclose1:=SysFileClose(File :=hFile);
(*schließen der Datei mit Datei-Nummer*)
END_IF


So sollte es funktionieren ...
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

das ganze Geheimniss ist:

Du musst eine steigende Flanke einfügen:

Hallo, verstehe ich nicht.... er macht das halt jeden Zyklus bis die 'speichern' wieder 0 ist.
Sollte aber nicht der Grund dafür sein dass das schreiben nicht geht.

Vielleicht brauchts ja eine explizite Angabe eine bestehende Datei zu überschreiben falls sie schon existiert, in Richtung 'w+' oder 'overwrite' ? 'w' bedeutet ja eigentlich nur schreiben, nicht überschreiben....

bg
bb

vergessen!
warum kommt da eigentlich kein Fehler zurück der beschreibt was das Problem ist... steht da vielleicht noch irgendwo ein Info diesbezüglich ?
 
Zuletzt bearbeitet:
Hi


Schau doch mal hier hinein.

Hier ist eine alte Library von mir.


Quelltextoffen.

Also mal öffnen und ausdrucken.
Auch Hinweise zur vorgehensweise sind enthalten.



ACHTUNG. Diese wird von mir NICHT mehr gepflegt.
(Da in naher Zukunft die www.OSCAT.DE das Dateihandling können wird.)




http://www.magnia.de/index.php?option=com_docman&task=cat_view&gid=50&Itemid=53


Zitat von KvT
Hallo,

das ganze Geheimniss ist:

Du musst eine steigende Flanke einfügen:
Es ist schon etwas mehr als 1 Geheimnis/Hürden :ROFLMAO:



Gruß Karl
 
Besten Dank für eure Antworten!
Hab jetzt die Problematik meines Codes verstanden ->Befehle benötigen mehrere Zyklen. Bei meinem Code öffne, schreibe und schließe ich Xmal in der Sekunde.

Werd weiter dran bleiben und berichten sobald die Sache läuft

Schönes WE!
 
Hallo,

ich sitze gerade vor dem gleichen Problem, wie oben beschrieben.
Ich will Daten, die in einem String stehen, in eine externe (CSV-Datei) schreiben.
Mein Problem ist, dass sich die Datei nicht mal öffnet. Ich hab es mit den Befehlen: SysFileOpen, -Write, -Close versucht.
Kann mir jemand einen Tipp geben, was man bei den Befehlen besonders beachten muss?

Vielen Dank
Grüße
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi,

die Lösung steht eigentlich schon hier in den Beiträgen. In dem Code (vielleicht machst Du Ihn mal für alle sichtbar) öffnest D ständig eine Datei. Das darf aber nur genau einmal geschehen. -> Steigende Flanke. Dann Schreiben udn einmalig schließen ... Wie eigentlich alle schon beschrieben haben ...
 
Zurück
Oben