View Full Version : ASCII dez Wert im RPG ermitteln.
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
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.
Ab RPG IV V4R4 gehts auch einfacher mit 3I 0:
D DS
DNUM 3I 0 INZ
DCHAR 1A OVERLAY(NUM)
Besten Dank für die Hilfe. Etwas umständlich aber es funktioniert.
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 @.
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.