- Beiträge
- 15.414
- Reaktionspunkte
- 4.043
-> Hier kostenlos registrieren
Hab mich gerade gewundert.
Folgender Code zur Wandlung einer DINT 7-stellig in einen String.
Ich weiß, es gibt DINT_TO_STRING, aber das Plus soll nicht dargestellt werden und führende Nullen sollen dargestellt werden.
Also mach ich das "zu Fuß".
Der Code funktioniert so erst einmal.
Für einen Test habe ich folgende Zeile geändert:
#strMontagenummer := ''; //7 Leerzeichen für 7-stelligen String --> kein Leerzeichen, also ein String der die Länge 0 hat.
Überprüft man das direkt nach dieser Zeile, dann hat der String tatsächlich die Länge 0.
Stellt man #I := LEN(#strMontagenummer); as Ende, dann ist die Länge 1.
Nach meiner Auffassung dürfte das nicht so sein, denn ich schreibe ja direkt auf die Bytes des Strings, was die Länge des Strings, die im 2. Kopfbyte stehen sollte nicht beeinflußt.
Also müßte bei '' als Startstring, die Länge 0 bleiben.
Fehler von mir, Siemens-Bug oder Feature???
Folgender Code zur Wandlung einer DINT 7-stellig in einen String.
Ich weiß, es gibt DINT_TO_STRING, aber das Plus soll nicht dargestellt werden und führende Nullen sollen dargestellt werden.
Also mach ich das "zu Fuß".
Code:
#nMontagenummer := #Montagenummer;
#strMontagenummer := '0000000'; //7 Leerzeichen für 7-stelligen String
#strMontagenummer[7] := #nMontagenummer MOD 10 + 48;
#nMontagenummer := #nMontagenummer / 10;
#strMontagenummer[6] := #nMontagenummer MOD 10 + 48;
#nMontagenummer := #nMontagenummer / 10;
#strMontagenummer[5] := #nMontagenummer MOD 10 + 48;
#nMontagenummer := #nMontagenummer / 10;
#strMontagenummer[4] := #nMontagenummer MOD 10 + 48;
#nMontagenummer := #nMontagenummer / 10;
#strMontagenummer[3] := #nMontagenummer MOD 10 + 48;
#nMontagenummer := #nMontagenummer / 10;
#strMontagenummer[2] := #nMontagenummer MOD 10 + 48;
#nMontagenummer := #nMontagenummer / 10;
#strMontagenummer[1] := #nMontagenummer MOD 10 + 48;
#I := LEN(#strMontagenummer);
Der Code funktioniert so erst einmal.
Für einen Test habe ich folgende Zeile geändert:
#strMontagenummer := ''; //7 Leerzeichen für 7-stelligen String --> kein Leerzeichen, also ein String der die Länge 0 hat.
Überprüft man das direkt nach dieser Zeile, dann hat der String tatsächlich die Länge 0.
Stellt man #I := LEN(#strMontagenummer); as Ende, dann ist die Länge 1.
Nach meiner Auffassung dürfte das nicht so sein, denn ich schreibe ja direkt auf die Bytes des Strings, was die Länge des Strings, die im 2. Kopfbyte stehen sollte nicht beeinflußt.
Also müßte bei '' als Startstring, die Länge 0 bleiben.
Fehler von mir, Siemens-Bug oder Feature???
Zuletzt bearbeitet: