Anmelden

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.

Fuerchau
08-10-22, 10:35
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.

B.Hauser
08-10-22, 11:30
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.

Fuerchau
09-10-22, 10:57
Wenn du den expandierten Hexwert haben wolltest hätte ich dir das auch mitgeteilt.
Ich bin nur von der Umwandlung Dezimal->Char ausgegangen.