Step 7 String variable verschieben

Wolfhunter

Level-1
Beiträge
52
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Morgen zusammen,

ich möchte einen String von innerhalb eines DB mittels Pointer verschieben.
Ist das überhaupt möglich den kompletten String zu verschieben oder muss man alle Bytes einzeln verschieben?
Wenn ja, wie mache ich das am besten in AWL?

Gruß
Dennis
 
Am einfachsten geht das mit dem SFC20 BLKMOV.
Diesen kannst du direkt symbolisch mit den beiden Strings beschalten, dann werden alle Bytes der Quellbereichs in den Zielbereich kopiert.
In diesem Falle kopiert der Baustein immer die max. Länge des Strings, auch wenn der String aktuell z.B. nur ein Zeichen lang ist.

Wenn man sich die Any-Pointer manuell zusammenbaut und in diesem den Datentyp 16#13= String setzt, so kopiert der BLKMOV auch nur Anzahl der Zeichen der aktuellen Stringlänge (inkl. Kopf). Zumindest sagt das die Dokumentation zu dem Baustein.
Wenn in SCL Strings einander zugewiesen werden wird das auch so gemacht, das ist dann unter Umständen schneller als die erste Version bei der immer alle Bytes kopiert werden.
 
Zurück
Oben