Step 7 Baustein um Zahl ohne Vorzeicher rechtsbündig in String zu schreiben

kliebisch.m

Level-1
Beiträge
120
Reaktionspunkte
5
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo, ich suche eine einfache Möglichkeit, um eine Zahl in einen String (mit 6 Zeichen) umzuwandeln, dabei will ich, dass die Zahl im String immer rechtsbündig und ohne Plus als Vorzeichen dargestellt wird. Momentan steht im String z.B. +12 linksbündig. Herzlichen Dank für jede Antwort
 
Die einfachste Möglichkeit wäre, dir die Oscat-Library zu laden, wenn ich recht erinnere gibt es da genau das, was du suchst.

www.oscat.de

Ansonsten gibt es natürlich die Möglichkeit, die Zahl in eine BCD zu zerlegen (man könnte auch die einzelnen Ziffern über eine einfache Division ermitteln), sich einen Pointer auf den String zu erzeugen und dann die Ziffern über diesen Pointer auf die entsprechende Stelle im String zu schreiben.
 
Zuletzt bearbeitet:
Ich kenne keinen fertigen Baustein, vielleicht weil der Algorithmus dafür so einfach ist:

Die Zahl fortlaufend durch 10 dividieren bis das Ergebnis 0 ist, die dabei abgespaltene Ziffer in ASCII-Zeichen wandeln (+48) und von hinten nach vorn in den String schreiben. Dann noch mit Vornullen oder Leerzeichen bis zum ersten Zeichen auffüllen oder besser den String vorher mit '_____0' (5x Leerzeichen + '0') oder '000000' initialisieren.

Harald
 
Oscat hat die Funktion DWORD_TO_STRF, das ist ein FC der keinen DB benötigt und der tut, was du benötigst.

Code:
//for example:    dword_to_strf(123,4) = '0123' 
//                dword_to_strf(123,2) = '23'
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen und Danke der Antworten.

Der DWORD_TO_STRF macht leider nicht alles, was ich brauche.
Daher habe ich die Sache schnell in AWL mit der Hand programmiert, DINT in String umwandeln, schauen, wieviel Zeichen im String stehen, die Zeichen mittels Sprungverteiler in einen neuen String schreiben und fertig.

Gruß
 
Zurück
Oben