View Full Version : Variablen
Moin zusammen,
anbei noch mal ne Frage:
D VAR_A S 2A
D VAR_X S 2A
Variable VAR_A hat den Wert '31'.
Ziel ist es nun, den Wert wie untenstehend zuzuweisen:
EVAL VAR_X = x'31'
Wie bekomme ich das mit RPG hin ?
Verzweifelte Grüße
Bratmaxxe
christian_lettner
12-11-07, 09:04
versuchs mal damit:
eval var_x = 'x''' + var_a + ''''
müsste funktionieren, denke ich.
mfg Chris
DAS ist ja sowas von falsch ;)
Um aus einem expandierten Hexwert (hier c'31' = x'F3F1') einen Hexwert zu erhalten (das Ziel hat dann nur 1 Byte), muss man eine C-Funktion bemühen (CVTCH) oder das Ganze in einer Schleife mit Tabelle selber umrechnen.
Probier's mal mit der C-Funktion cvtch.
Gruß,
KM
Hallo Chris,
danke für Deinen Beitrag.
Jetzt steht im String zwar das was ich brauche, jedoch als String und nicht als Hex-Variable - das ist ja genau mein Problem....
Gruß
Bratmaxxe
Hi...
danke für die bisherigen Antworten !
eval var = x'31'
Wert sieht im Debug so aus:
--> VAR = ' '
wenn ich jetzt die cvtch Funktion aufrufe, hab ich in der Variable nachfolgenden Inhalt:
--> var = 'F3F1'
Wie bekomme ich das denn nun gebacken, dass das Zielfeld gleich den Wert
--> VAR = ' '
hat ?
Gruß
Bratmaxxe
kuempi von stein
12-11-07, 09:52
sodele, dann gebe ich auch mal meinen Senf dazu.
C MOVE '1' *INLR
*
* ANMERKUNG KUEMPI NACH HEX12 KOMMT SPÄTER DIE GEWÜNSCHTE VAR
*
C MOVEL'31' HEX12 2
*
*----------------------------------------------------------------
* AUS HEXCODE (2-STELLIG) --> CHARACTER(1) MIT DEM CODE MACHEN
*----------------------------------------------------------------
*
C MOVELHEX12 HEX1 1
C MOVE HEX12 HEX2 1
*
C MOVE *LOVAL CHR1 1
C SELEC
C HEX1 WHEQ '1'
C BITON'3' CHR1
C HEX1 WHEQ '2'
C BITON'2' CHR1
C HEX1 WHEQ '3'
C BITON'23' CHR1
C HEX1 WHEQ '4'
C BITON'1' CHR1
C HEX1 WHEQ '5'
C BITON'13' CHR1
C HEX1 WHEQ '6'
C BITON'12' CHR1
C HEX1 WHEQ '7'
C BITON'123' CHR1
C HEX1 WHEQ '8'
C BITON'0' CHR1
C HEX1 WHEQ '9'
C BITON'03' CHR1
C HEX1 WHEQ 'A'
C BITON'02' CHR1
C HEX1 WHEQ 'B'
C BITON'023' CHR1
C HEX1 WHEQ 'C'
C BITON'01' CHR1
C HEX1 WHEQ 'D'
C BITON'013' CHR1
C HEX1 WHEQ 'E'
C BITON'012' CHR1
C HEX1 WHEQ 'F'
C BITON'0123' CHR1
C OTHER
C HEX1 IFNE '0'
C MOVE '?' CHR1
C GOTO EHEX
C END
C ENDSL
*
C SELEC
C HEX2 WHEQ '1'
C BITON'7' CHR1
C HEX2 WHEQ '2'
C BITON'6' CHR1
C HEX2 WHEQ '3'
C BITON'67' CHR1
C HEX2 WHEQ '4'
C BITON'5' CHR1
C HEX2 WHEQ '5'
C BITON'57' CHR1
C HEX2 WHEQ '6'
C BITON'56' CHR1
C HEX2 WHEQ '7'
C BITON'567' CHR1
C HEX2 WHEQ '8'
C BITON'4' CHR1
C HEX2 WHEQ '9'
C BITON'47' CHR1
C HEX2 WHEQ 'A'
C BITON'46' CHR1
C HEX2 WHEQ 'B'
C BITON'467' CHR1
C HEX2 WHEQ 'C'
C BITON'45' CHR1
C HEX2 WHEQ 'D'
C BITON'457' CHR1
C HEX2 WHEQ 'E'
C BITON'456' CHR1
C HEX2 WHEQ 'F'
C BITON'4567' CHR1
C OTHER
C HEX2 IFNE '0'
C MOVE '?' CHR1
C END
C ENDSL
*
* ANMERKUNG KUEMPI DSPLY ist nur für DEBUG EINGEBAUT
*
C EHEX TAG
C 'NURSO' DSPLY
C RETRN
Hi Kuempi !
super, genau das was ich brauchte - die Woche ist gerettet ;)
Vielen lieben Dank
Gruß
Bratmaxxe