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