View Full Version : Konvertierung in Hex Werte
camouflage
08-10-22, 10:12
Hi Forum,
Ich möchte den Wert 204 in den Hex-Wert CC umrechnen, als Beispiel. Trotz Recherche und einiger Ansätze bin ich zu keinem Ziel gelangt. Am liebsten wäre mir eine SQL-Lösung, doch der select hex bringt es nicht und ebenso ist das cvthc API nicht zu gebrauchen. Hat da mir jemand einen Tipp, oder muss ich mir wirklich einen Hex-String mit Konstanten (bitte nicht) einbauen?
Merci.
Eigentlich ganz einfach:
dcl-ds;
NumWert uint(3); // ergibt 1 Byte
CharWert char(1) pos(1);
end-ds;
NumWert = 204;
if CharWert = x'CC';
endif;
Umgedreht ists komplizierter.
Warum bringt es der HEX in SQL nicht?
Was Du möchtest ist der Hex-Wert eines Integers. Wenn es sich bei deinen Daten nicht um einen Integer-Wert handelt, sondern z.B. um DECIMAL (=gepackt numerisch) oder NUMERIC (gezont numerisch), musst Du diesen ggf. zunächst in Integer konvertieren.
Values(Hex(Integer(204)));
Wenn Du nur die letzten beiden Stellen haben willst, kannst Du die führenden Nullen entsprechend abtrimmen:
Values(Trim(Leading '0' from hex(Int(204))));
camouflage
08-10-22, 11:35
Hallo Baldur,
vorerst mal ein Dankeschön, nun bin ich ein wenig weiter, auch wenn der Feldtyp uint mir ganz neu ist. ;-)
Ich hab's mal mit "uns" probiert. Jetzt wäre nur noch die Aufgabe, wie bekomme ich den x'CC' als Wert 'CC' in ein 2-stelliges Alphafeld.
camouflage
08-10-22, 11:46
Sorry Baldur,
aber Birgitta did the trick!
Super, vielen Dank an meine Lieblings-Forum-Experten.
Habt ein schönes WE.
Wenn du den expandierten Hexwert haben wolltest hätte ich dir das auch mitgeteilt.
Ich bin nur von der Umwandlung Dezimal->Char ausgegangen.