A
Anonymous
Guest
-> Hier kostenlos registrieren
Hallo,
also eine vielstellige INT Zahl oder DINT Zahl umzuwandeln ist ja nicht so schwer. Das ganze habe zum ausprobieren mal statisch gemacht. Aus dem DINT 1234567 berechne ich die einzelnen Stellen mit einer Division durch 1000000, dann durch 100000.....bis hin zu 10 und die 1er bleiben dann noch übrig. Funzt auch soweit und die Daten liegen dann im DB43 in einem langen Char Array.Ich schreibe jeden CHAR einzeln, da ich danach dann eine Textdatei aus den DB43 gemacht habe, mit String würde das glaub ich nicht gehen,besser gesagt eine CSV-Datei, die ich dann in Excel bearbeiten kann.
Jetzt meine Frage, besser gesagt mein Problem:
Ich habe ca.100 7-stellige DINT Zahlen in einem Datenbaustein stehen, die jetzt umgewandelt werden müssen und einzeln als chars hintereinander in meinen DB43 eingetragen werden müssen.
Man müßte also einen DINT aus einem Datenbaustein holen umwandeln( dabei die einzelnen chars schreiben), dann um einen DINT hochzählen,den nächsten DINT holen,umwandeln,und der char pointer müsste dann noch an der alten Stelle stehen, wo man die Daten dann weiter einträgt.
Hier ist der Code, wie ich die Ints gewandelt hab.(Ne bessere Lösung ist mir nicht eingefallen):
/----------------------------------------- 1000000 -------------------------------------------------------
L DB1.DBD 0
L L#1000000
/D
T MW 20 //1000er liegen in MW20
L W#16#30 //W#16#30 wir addiert daraus wird char
+D
T DB43.DBB 20 //Fertiger Char in DB43 an Stelle 20
//--------------------------------------------100000 ---------------------------------------------------------------
L MW 20 //Bestimmung der 100000er
L L#-1000000
*D
L DB1.DBD 0
+D
T #ZwSpeicher
L L#100000
/D
T MW 22
L W#16#30
+D
T DB43.DBB 21
usw.
also eine vielstellige INT Zahl oder DINT Zahl umzuwandeln ist ja nicht so schwer. Das ganze habe zum ausprobieren mal statisch gemacht. Aus dem DINT 1234567 berechne ich die einzelnen Stellen mit einer Division durch 1000000, dann durch 100000.....bis hin zu 10 und die 1er bleiben dann noch übrig. Funzt auch soweit und die Daten liegen dann im DB43 in einem langen Char Array.Ich schreibe jeden CHAR einzeln, da ich danach dann eine Textdatei aus den DB43 gemacht habe, mit String würde das glaub ich nicht gehen,besser gesagt eine CSV-Datei, die ich dann in Excel bearbeiten kann.
Jetzt meine Frage, besser gesagt mein Problem:
Ich habe ca.100 7-stellige DINT Zahlen in einem Datenbaustein stehen, die jetzt umgewandelt werden müssen und einzeln als chars hintereinander in meinen DB43 eingetragen werden müssen.
Man müßte also einen DINT aus einem Datenbaustein holen umwandeln( dabei die einzelnen chars schreiben), dann um einen DINT hochzählen,den nächsten DINT holen,umwandeln,und der char pointer müsste dann noch an der alten Stelle stehen, wo man die Daten dann weiter einträgt.
Hier ist der Code, wie ich die Ints gewandelt hab.(Ne bessere Lösung ist mir nicht eingefallen):
/----------------------------------------- 1000000 -------------------------------------------------------
L DB1.DBD 0
L L#1000000
/D
T MW 20 //1000er liegen in MW20
L W#16#30 //W#16#30 wir addiert daraus wird char
+D
T DB43.DBB 20 //Fertiger Char in DB43 an Stelle 20
//--------------------------------------------100000 ---------------------------------------------------------------
L MW 20 //Bestimmung der 100000er
L L#-1000000
*D
L DB1.DBD 0
+D
T #ZwSpeicher
L L#100000
/D
T MW 22
L W#16#30
+D
T DB43.DBB 21
usw.