Siemens
Siemens

Digital Industries, Motion Control, Machine Tool Systems

Letzte drei Stellen von Integer Variable isolieren

Beitrag 13.03.2020, 07:32 Uhr
Captain_G0
Captain_G0
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.11.2018
Beiträge: 9
Hallo,

gibt es die Möglichkeit von einem 6-stelligen Integer die letzten drei Zahlen zu isolieren und in eine Variable zu schreiben.

Bsp.

TYP=123456
.
.
TYP_NEU=456

Die Variable TYP darf nicht geändert werden da diese den Programmablauf steuert.

Danke vorab.
   
Beitrag 13.03.2020, 08:07 Uhr
CNCFr
CNCFr
Level 7 = Community-Professor
*******
Gruppe: Mitglied
Mitglied seit: 15.09.2002
Beiträge: 1.922
TYP_NEU= TYP MOD 1000
   
Beitrag 13.03.2020, 08:11 Uhr
CaptainFu
CaptainFu
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.09.2019
Beiträge: 49
Das Beispiel unten wäre ein Möglichkeit die mir so dazu einfällt, geht sicher auch noch anders, einfach mal ausprobieren.

Def Int lTyp=123456, lTyp_Neu
;Den String so wählen das der vermutete Inhalt des Integers reinpasst, kann auch ruhig etwas größer sein
Def String[20] lStrg

;Variableninhalt dem String zu weisen
lStrg=<<lTyp
;Die letzten 3 Ziffern abholen (-3) und wieder einem Integer zu weisen
Execstring("lTyp_Neu="<<Substr(lStrg,Strlen(lStrg)-3))
;Die Message sollte dann 456 anzeigen
Msg(<<lTyp_Neu)

m0
stopre

m30
   
Beitrag 13.03.2020, 08:13 Uhr
Captain_G0
Captain_G0
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 12.11.2018
Beiträge: 9
QUOTE (CNCFr @ 13.03.2020, 09:07 Uhr) *
TYP_NEU= TYP MOD 1000


Funktioniert.

Perfekt Vielen Dank.
   
Beitrag 13.03.2020, 08:15 Uhr
CaptainFu
CaptainFu
Level 1 = Community-Lehrling
*
Gruppe: Mitglied
Mitglied seit: 09.09.2019
Beiträge: 49
QUOTE (CNCFr @ 13.03.2020, 08:07 Uhr) *
TYP_NEU= TYP MOD 1000



Die Version ist natürlich noch hübscher.
   
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: