PDA

View Full Version : ASCII dez Wert im RPG ermitteln.



oulbrich
07-05-12, 12:56
Hallo zusammen,

ich muss innerhalb eines RPG Programms den ASCII dez. Wert eines Zeichens ermitteln. z.B( a= 97, b=98 etc) Gibt es das eine einfache Lösung.

Gruss Olaf Ulbrich

Fuerchau
07-05-12, 13:03
Dies musst du in 2 Schritten tun:
1. EBCDIC->ASCII Umwandeln
Dies geht z.B. mit QDCXLATE-API am einfachsten. Ansonsten gibts da noch mehr API's.

2. Binährzahl ermitteln

D MyDs
D MyInt2 5I 0 inz
D MyChar1 1 overlay(MyInt2:2)

MyChar1 = %subst(FromChar:n:1)

In MyInt2 steht dann der Dezimalwert.

Pikachu
07-05-12, 13:23
Ab RPG IV V4R4 gehts auch einfacher mit 3I 0:

D DS
DNUM 3I 0 INZ
DCHAR 1A OVERLAY(NUM)

oulbrich
07-05-12, 14:02
Besten Dank für die Hilfe. Etwas umständlich aber es funktioniert.

Pikachu
07-05-12, 16:11
Möglich wäre auch, das Zeichen mit SCAN in einer Zeichenkette zu suchen, welche die Zeichen aus der ASCII-Tabelle in der entsprechenden Reihenfolge enthält. Aus der gefundenen Position kann dann der gesuchte ASCII-Wert des betreffenden Zeichens abgeleitet werden. Vorsicht ist allerdings bei CCSID-varianten Zeichen geboten, zum Beispiel mit @.

Fuerchau
07-05-12, 16:40
Gerade wegen der CCSID-Problem empfielt sich genau sowas nicht!
Ich muss da schon die Konvertierung von Job-CCSID in z.B. 1252 vornehmen um dann den Ascii-Wert zu ermitteln.