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

Zeilenumbruch

2006-08-24
2006-10-09
  • LordoftheRings - 2006-08-24

    Ich habe im Moment das Problem das ich mit Hilfe SySFileWrite einen String in eine Datei schreiben möchte. Bei dem ganzen handelt es sich um ein Testsoftware bei dem ich Fehlermeldungen in einer seperaten Datei landen sollen.

    Das Problem das ich habe ist das ich leider bisher keine gescheite Möglichkeit gefunden habe einen Zeilenumbruch in der Datei hinzubekommen. Die Strings die ich dort hinein schreibe werden ständig aneinander gehängt. Und das ganze sieht logischerweise nicht besonders übersichtlich so aus.

    Kann mir jemand helfen bzw. hat eine Lösung für das Problem?

     
  • J Schohaus - 2006-08-25

    Ganz einfach :

    Deklariere ein String mit dem Schlüssel für "Return" und "Line Feed"

    sReturn : STRING := '$R$L';

    Wenn Du diesen String in die Datein überträgst hast du dein Zeilenumbruch.

     
  • LordoftheRings - 2006-08-31

    Der Zeilenumbruch funktioniert soweit - nur leider bekomme ich zum Abschluss einer Zeile jetzt immer noch ein "^M".

    Weiss jemand wie ich das noch loswerde? Zur Erwähnung mein Think-IO läuft unter Linux.

     
  • mwatermann - 2006-08-31

    ist das "^M" immer das selbe, oder kommen auch andere zeichen als letzte zwei zeichen vor?

    ich meine mich erinnern zu können, dass es in LabView ein ähnliches problem gab. da wurde der string automatisch um zwei verlängert und die mit ausgegeben letzten zeichen waren zufällig...

    aber eine konkrete lösung ist mir leider nicht mehr bekannt...

     
  • LordoftheRings - 2006-08-31

    Das "^M" am Ende einer Zeile kommt jedesmal in keiner unveränderter Form.

    Sieht dann ungefähr so aus:

    DATUM: 31ter 15:6:1 TEST_Profibus_DPM_Hilscher_LIB^M

    DATUM: 31ter 15:6:51 TEST_KbusConfigurator^M

    DATUM: 31ter 15:6:51 Links aktuelle Werte: IN:0000 OUT:0001^M

    DATUM: 31ter 15:8:2 TEST_KbusConfigurator^M

    DATUM: 31ter 15:8:7 Links aktuelle Werte: IN:1000 OUT:1001^M

    DATUM: 31ter 15:8:51 TEST_KbusConfigurator^M

    DATUM: 31ter 15:8:51 Links aktuelle Werte: IN:1100 OUT:1101^M

     
  • mwatermann - 2006-08-31

    ist zwar keinesfalls die dauerhafte optimale lösung (muss ja einen grund haben, warum das ^M da steht), aber du könntest nachträglich einfach jeden string um 2 byte "beschneiden".

     
  • slayer9 - 2006-09-27

    Versuchs mal mit '$R$N'

    Wenn man aus einem file in Codesys liest, so erhält man bei Abschluß einer zeile durch "cure" diesen String am ende einer gelesenen Zeile

    siehe Hilfe string-Konstanten

     
  • Benjamin - 2006-10-09

    Bei Windows wird eine neue Zeile durch und gebildet. Das hast du ja auch in deinem sReturn-String.

    Unter Unix/Linux wird eine neue Zeile nur durch gebildet.

    Versuche es einmal mit

    sReturn : STRING := '$N';

    MFG

    Benjamin

     

Log in to post a comment.