String kopieren

dietere

Level-1
Beiträge
32
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

wenn ich einen String in ST mittels Befehl
StringA:=StringB;
kopiere, kann dann was kaputtgeschrieben werden wenn StringB länger wie StringA ist ?
StringA:STRING(128);
StringB:STRING(255);


Benutze einen WAGO 758-870 mit Codesys.

Grüsse,
Dieter
 
Hallo Dieter

Habe dieses auf der Simulation getestet und keine überschneidung festgestellt.

Du kannst dieses auch selbst für deine Waggo testen wenn du feste adressen verwendest.

z.B.
StaringA AT %MW0 : STRING(12) ;
Staringx AT %MW6 : STRING(12) ;
StaringB : STRING(255) ;

dann darf nie sich etwas in String X sich verändern.

mfG Jochen
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ganz offiziell:

bei einer Zuweisung String1 := String2; wird immer die minimale Länge von String1 und String2 kopiert.
Es kann also sein dass String1 anschliessend eine "abgeschnittene" Version von String2 erhält. Es kann aber nicht passieren, dass Speicher nach String1 überschrieben wird.
Übrigens ist die Wertzuweisung hier relativ aufwendig, wenn String1 nicht unabhängig von String2 verändert werden soll, dann ist es effizienter mit POINTER oder bei Aufrufen mit VAR_IN_OUT zu hantieren.

Bernhard Werner (von 3S-Smart Software Solutions)
 
Zurück
Oben