Wandlung Real zu Int

GerhardPtl

Level-1
Beiträge
77
Reaktionspunkte
0
Hallo und guten Morgen,

Montag morgen und die Woche nimmt kein Ende!

Ich suche nach einer Möglichkeit aus einem DB (mit Reals) einen Teil der Daten in einen anderen DB mit INT´s zu schreiben.
Klingt zunächst erst mal nicht so schwer. Habe es mit dem BlockMove versucht, bin aber an den Formaten gescheitert.
Auch die Suche in den Bibliotheken führte zu keinem Erfolg.

Weiß jemand Rat?

Gruß
Gerhard
 
Vielen DANK! Ich hatte diesen Beitrag zwar schon mal gefunden, aber irgendwie nicht in den Griff bekommen!
 
ja, zum Teil, die Daten kommen zwar richtig an, aber natürlich verschoben.
Das DBD0 kommt im DBW 2 an. Muss ich da etwas "schieben"!?

Gruß

Gerhard
 
ja, das war zuerst auch mein Verdacht:

Im Moment sieht das Ganze so aus:

L 0
T #index
do: NOP 0
L #index
SLD 3
LAR1
AUF "Remote_MW"
L DBD [AR1,P#0.0]
RND
AUF "DB LDD2"
T DBW [AR1,P#80.0]
L 4
L #index
+I
T #index
L 32
>I
SPB end
SPA do
end: NOP 0

Irgendwie ist aber ab dem 2.ten Word alles verschoben.
 
Der Index wird doch auch für die DWs um 4 und nicht um 2 erhöht. Hier müssen separate Indizes her (oder vor dem Zugriff umgerechnet werden).
 

[EDIT]
Das ist leider Quatsch!

Du brauchst 2 Index/Pointer, einen für das Lesen der REAL, der um 4 erhöht wird und einen für das Schreiben der INT, der um 2 erhöht wird.
[/EDIT]

Harald
 
Zuletzt bearbeitet:
so ist es übersichtlicher.
Code:
L 0
T #index
do: NOP 0
L #index
SLD 3
LAR1 
AUF "Remote_MW"
L DBD [AR1,P#0.0]
RND 
[COLOR=red]DTB-----> in INT [/COLOR]
[COLOR=red]BTI-----> wandeln
[/COLOR]AUF "DB LDD2"
T DBW [AR1,P#80.0]
L 4------> dann überspringst du aber ein DBW.Ist das gewünscht?
L #index
+I 
T #index
L 32
>I 
SPB end
SPA do
end: NOP 0
 

Was bringt das für die Übersichtlichkeit???
 
[L 4------> dann überspringst du aber ein DBW.Ist das gewünscht?


ne, natürlich nicht - das ist es ja.
 
Code:
L 0
T #index
do: NOP 0
L #index
SLD 3
LAR1 
L 0
T index2
SLD 3
LAR2
AUF "Remote_MW"
L DBD [AR1,P#0.0]
RND 
[COLOR=red]DTB-----> in INT[/COLOR]
[COLOR=red]BTI-----> wandeln
[/COLOR]AUF "DB LDD2"
T DBW [AR2,P#80.0]
L 2
L index2
+I
T index2
L 4
L #index
+I 
T #index
L 32
>I 
SPB end
SPA do
end: NOP 0
 
Noch was. Bei dieser Umwandlung(RND--> DTB-->BTI) werden nur bis 999 die Werte korrekt gewandelt!!!
 
Nein, aber das RND war ja schon da! Das wandelts in einen double! Und dies nochmal in einen INT zu wandeln ist nicht nötig!
 
Für die Nutzung dieser Website sind Cookies erforderlich. Du musst diese akzeptieren, um die Website weiter nutzen zu können. Erfahre mehr…