-> Hier kostenlos registrieren
Hallo zusammen,
ich bin gerade dabei ein Bestandsprojekt zu überarbeiten. Das Ganze läuft auf einer S7-1518 unter TIA V18. Von einem Fremdsystem empfange ich mehrfach Strings, die 14 Zeichen lang sind.
Leider werden die Strings vom Fremdsystem nicht sauber übergeben. Dier ersten 2 Byte, also die String-Maximallänge und die tatsächliche Länge sind 0.
An dem Empfangs-DB kann ich nichts ändern. Die Daten sollen in einen anderen DB in ein Array of String kopiert werden. Soweit funktioniert das. Allerdings sind die Strings dann leer, da ja die beiden String-Längen im Ursprungsstring 0 sind.
Wenn ich die Chars einzel über StringNeu[1] := StringAlt[1] … umkopiere, sind die einzelnen Chars danach leer. Wenn ich den Kopiervorgang online beobachte, sehe ich noch, wie im Ursprungsstring das richtige Zeichen gelesen wird, es wird dann aber ‚‘ also ein leeres Char geschrieben.
Per Slice lässt sich wohl nicht auf einen String zugreifen, das wird nicht zugelassen.
Wenn ich den sehr unschönen, und bei der Menge an Strings auch nicht praktikablen Umweg über Pointer gehe und die Chars so einzeln umkopiere, erhalte ich den korrekten String.
Hat jemand eine Idee, wie ich die „defekten“ Strings ohne den Einsatz von Pointern umkopiert bekomme, so dass sie hinterher lesbar sind?
Gruß
the_elk
ich bin gerade dabei ein Bestandsprojekt zu überarbeiten. Das Ganze läuft auf einer S7-1518 unter TIA V18. Von einem Fremdsystem empfange ich mehrfach Strings, die 14 Zeichen lang sind.
Leider werden die Strings vom Fremdsystem nicht sauber übergeben. Dier ersten 2 Byte, also die String-Maximallänge und die tatsächliche Länge sind 0.
An dem Empfangs-DB kann ich nichts ändern. Die Daten sollen in einen anderen DB in ein Array of String kopiert werden. Soweit funktioniert das. Allerdings sind die Strings dann leer, da ja die beiden String-Längen im Ursprungsstring 0 sind.
Wenn ich die Chars einzel über StringNeu[1] := StringAlt[1] … umkopiere, sind die einzelnen Chars danach leer. Wenn ich den Kopiervorgang online beobachte, sehe ich noch, wie im Ursprungsstring das richtige Zeichen gelesen wird, es wird dann aber ‚‘ also ein leeres Char geschrieben.
Per Slice lässt sich wohl nicht auf einen String zugreifen, das wird nicht zugelassen.
Wenn ich den sehr unschönen, und bei der Menge an Strings auch nicht praktikablen Umweg über Pointer gehe und die Chars so einzeln umkopiere, erhalte ich den korrekten String.
Hat jemand eine Idee, wie ich die „defekten“ Strings ohne den Einsatz von Pointern umkopiert bekomme, so dass sie hinterher lesbar sind?
Gruß
the_elk