zeilemumbruch beim schreiben in datei

Janko12301
2008-02-01
2008-02-02
  • Janko12301 - 2008-02-01

    habe das kompaktsystem 758 870

    und möchte gerne werte immer in eine datei schreiben.

    das funktioniert auch.

    nur leider bekomme ich den zeilenumbruch nicht hin.

    bei einem anderen controller habe ich folgendes benutzt.

    b := CONCAT(ASCIIBYTE_TO_STRING (16#0A) , ASCIIBYTE_TO_STRING (16#0D)); (Zeilenbruch ASCII 16#0A0D)

    in der standard.lib vom 870 gibt es diese funktion aber nicht und die andere standard lib lässt sich nicht einbinden bzw. diese funktion wird dann nicht unterstützt.

    str_eintrag:=CONCAT(str_eintrag, '$n');
    datenAI[1]:=str_eintrag;
    (* ############## hier beginnt das abspeichern auf festplatte ################# *)
    (*Datei öffnen; Modus: a... append, d.h. am Dateiende weiterschreiben:*)
    filenr := SysFileOpen(filename:= 'digital.txt', mode:= 'a'); (*Datei öffnen bzw. anlegen*)
    SysFileWrite( File := filenr, Buffer := ADR(datenAI[1]), Size := SIZEOF(datenAI[1]));(*Datei beschreiben*)
    SysFileClose(filenr);
    

    das ist mein code aber leider funktioniert das nicht.

    das ergebniss im texteditor sieht dann so aus

    2008.02.01 09:47:28 128

    0 0 2008.02.01 09:47:29 0

    0 0 2008.02.01 09:47:31 8

    0 0 2008.02.01 09:47:32 0

    0 0

    ich erhalte auch immer komischen nullen mit beim speichern

    kann jemand helfen?

     

    Related

    Talk.ru: 1

  • hugo - 2008-02-01

    ich mache einen zeilenumbruch mit $R$N und damit klappt es $R$N (hex 13 und 10)

    wenn du eine funktion asciibyte to string suchst schau die die offene lib von oscat ab dort gibt es die sie heist chr()

    die lib findest du unter w www.oscat.de w

     
  • Ralph Holz - 2008-02-01

    Hugo war schneller!

    Auszug aus der Hilfe:

    Zitat:
    STRING-Konstanten
    Ein String ist eine beliebige Zeichenreihe. STRING-Konstanten werden mit einfachen Hochkommas vorn und hinten begrenzt. Es können auch Leerzeichen und Umlaute eingegeben werden. Sie werden genauso wie alle anderen Zeichen behandelt.
    In Zeichenfolgen wird die Kombination des Dollarzeichens ($) gefolgt von zwei hexadezimalen Ziffern als hexadezimale Darstellung des acht Bit Zeichencodes interpretiert. Außerdem werden, wenn sie in einer Zeichenfolge auftauchen, Kombinationen von Zeichen, die mit dem Dollarzeichen beginnen, wie folgt interpretiert:
    $$ Dollarzeichen
    $' Hochkomma
    $L oder $l Zeilenvorschub
    $N oder $n Neue Zeile
    $P oder $p Seitenvorschub
    $R oder $r Zeilenumbruch
    $T oder $t Tabulator
    Beispiel:
    'firstline$Rsecondline'

    also in deinem Fall b:= '$R$N'

     
  • Janko12301 - 2008-02-01

    auf dem 758 870 ist ein linuxdateisystem drauf

    daher sollte auch ein $n Neue Zeile

    reichen.

    die oscat libery hatte ich schon ausprobiert, nur leider verträgt diese sich nicht mit der standard.lib vom 758 870

    haben mehrere bausteine den gleichen namen und dadurch kann ich diese nicht verwenden.

     
  • hugo - 2008-02-01

    wieso sollte die standard lib des 870 einen anderen funktionsumfang haben wie jede übliche standard lib?

    die oscat lib benötigt sogar die standard lib.

    welche module sind in der 870 standard lib die sich nicht vertragen? gleiche namen benutzen?

    oder hast du auch die util lib oder noch andere eingebunden?

     
  • hugo - 2008-02-01

    das $N nicht reicht hängt ja nicht von deinem betriebssystem ab sondern von den anwendungen die lesen und schreiben

    unter html wird auch imemr $R$N gesendet egal ob linux oder windows oder was auch immer

     
  • Janko12301 - 2008-02-01

    der funktionsumfang ist aber anders.

    ascii_to_byte enthält diese lib nicht

    ja ich benutze blink aus der util.lib

    daher kommt vieleicht der fehler

     
  • dietere - 2008-02-02

    Zitat:
    auf dem 758 870 ist ein linuxdateisystem drauf
    daher sollte auch ein $n Neue Zeile
    reichen.

    ja ein $n alleine funktioniert auf dem 758-870

    Zitat:
    die oscat libery hatte ich schon ausprobiert, nur leider verträgt diese sich nicht mit der standard.lib vom 758 870
    haben mehrere bausteine den gleichen namen und dadurch kann ich diese nicht verwenden.

    das stimmt so nicht, beide vertragen sich sehr gut

    Zitat:
    ja ich benutze blink aus der util.lib
    daher kommt vieleicht der fehler

    genau, hatte ich auch. Hab die util.lib rausgeschmissen und anstelle von BLINK den Baustein SIGNAL aus der ocsat.lib genommen. Funktioniert genauso gut und ist ausserdem noch flexibler.

     

Log in to post a comment.