Naja, dann will ich mal nicht so sein:
Code:
hbnddir('QC2LE') dftactgrp(*no) actgrp(*caller)
d strtol pr 10I 0 extproc('strtol')
d nptr * options(*string) value
d endptr * value
d base 10I 0 value
d itoa pr * extproc('__itoa')
d ival 10I 0 value
d strptr * value
d base 10I 0 value
d MyInt s 10I 0
d MyStr s 34 inz('10010001')
d MyPtr s *
c/free
MyInt = strtol(MyStr: %addr(MyPtr) :2) + 1;
itoa(MyInt: %addr(MyStr): 2);
MyStr = %subst(MyStr:1:%scan(x'00':MyStr)-1);
return;
/end-free
Die Funktion "strtol" konvertiert einen String in einen Long, wobei als Basis 2 - 36 angegeben werden kann.
Die Funktion "itoa" macht das Ganze dann umgekehrt.
Die letzte Anweisung ist nur für das Entfernen des Nul-Zeichens.
Bookmarks