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

Mehr als 255Zeichen lesen von Datei

HProg
2015-07-11
2015-07-16
  • HProg - 2015-07-11

    Hallo zusammen, ich habe folgendes Frage / Problem:
    Wie kann ich eine Datei die grösser als 255 Zeichen ist z.B. Zeilenweise einlesen. Ich verwende die Funktion File.Read() aus der Sys.CAA Lib.
    Aber beim Lesen bekomme ich immer alle Zeichen zurück mit der Anzahl wie gr0ss die Targetvariable ist, aber ein String kann halt nur max. 255 Char. Alle Zeilen sind mit $R$N abgeschlossen.
    Ich kann auch damit leben wenn ich alle Daten in irgend einen MEM schreiben kann und mir dann die Zeilen selbst raus such (was halt nicht so schön ist)
    Das Beispiel auf der Codesys Seite (FileUtilitiesPI.project) habe ich als Vorlage verwendet, funktioniert auch perfekt, aber halt nur mit weniger als 255 Zeichen)

    Danke für eure Hilfe im Voraus.

     
  • HProg - 2015-07-16

    HProg hat geschrieben:
    Hallo zusammen, ich habe folgendes Frage / Problem:
    Wie kann ich eine Datei die grösser als 255 Zeichen ist z.B. Zeilenweise einlesen. Ich verwende die Funktion File.Read() aus der Sys.CAA Lib.
    Aber beim Lesen bekomme ich immer alle Zeichen zurück mit der Anzahl wie gr0ss die Targetvariable ist, aber ein String kann halt nur max. 255 Char. Alle Zeilen sind mit $R$N abgeschlossen.
    Ich kann auch damit leben wenn ich alle Daten in irgend einen MEM schreiben kann und mir dann die Zeilen selbst raus such (was halt nicht so schön ist)
    Das Beispiel auf der Codesys Seite (FileUtilitiesPI.project) habe ich als Vorlage verwendet, funktioniert auch perfekt, aber halt nur mit weniger als 255 Zeichen)
    Danke für eure Hilfe im Voraus.

    Das Problem hab ich in der Zwischenzeit gelöst, die grösste Hilfe war die OSCAT.Lib, grundsätzlich geht es mit einem Pointer auf ein Array[0..n] of Byte
    z.B.
    pQ : POINTER TO ARRAY[0..c_iMaxFileSize] OF BYTE; // Pointer auf die Quelle Read File
    pZ : POINTER TO BYTE;
    ...

    FOR i:=0 TO 127 DO
    pZ^:= pQ^[n+i];
    pZ := pZ +1 ;
    END_FOR

    Hoffe das dies Zeilen etwas weiter helfen wenn jemand ein ähnliches Problem hat

     

Log in to post a comment.