PDA

View Full Version : Variablen



Bratmaxxe
12-11-07, 08:17
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

Fuerchau
12-11-07, 09:18
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.

KM
12-11-07, 09:19
Probier's mal mit der C-Funktion cvtch.

Gruß,
KM

Bratmaxxe
12-11-07, 09:24
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

Bratmaxxe
12-11-07, 09:41
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

Bratmaxxe
12-11-07, 10:06
Hi Kuempi !

super, genau das was ich brauchte - die Woche ist gerettet ;)

Vielen lieben Dank
Gruß
Bratmaxxe