>*================================================== >* convert a numeric value into BCD format >*================================================== >Parameter tnNumber, tnDigits, tlSigned > > *----------------------------------------------- > * get number of digits, must be odd > *----------------------------------------------- > Private lnDigits > lnDigits = tnDigits > If lnDigits%2 == 0 > lnDigits = lnDigits+1 > Endif > > *----------------------------------------------- > * build number string > *----------------------------------------------- > Private lcNumber, lcSign > If tlSigned > If tnNumber < 0 > lcSign = Chr(48+13) > Else > lcSign = Chr(48+12) > Endif > Else > lcSign = Chr(48+15) > Endif > lcNumber = ; > ChrTran( PadR(tnNumber,20), " +-,.E*", "" ) > lcNumber = PadL(lcNumber,lnDigits,"0") + lcSign > > *----------------------------------------------- > * convert to BCD string > *----------------------------------------------- > Private lcBCD, lnLoop, lnLow, lnHigh > lcBCD = "" > For lnPos = 1 TO Len(lcNumber) / 2 > lnLow = Asc(SubStr(lcNumber,lnPos*2,1))-48 > lnHigh = Asc(SubStr(lcNumber,lnPos*2-1,1))-48 > lcBCD = lcBCD + Chr(lnLow+16*lnHigh) > Endfor > >Return lcBCD>