| Return Type | Function name | Arguments |
|---|---|---|
| const char* | FormalNumber | (unsigned int,unsigned int,) |
Declared in file: hzTextproc.h
Defined in file : hzTextproc.cpp
Function Logic:
Function body:
const char* FormalNumber (unsigned int nValue, unsigned int nMaxlen)
{
_hzfunc("FormalNumber(u32)") ;
char* i ;
char* pBuf ;
uint32_t B ;
uint32_t M ;
uint32_t T ;
uint32_t U ;
i = pBuf = _thisfn.ScratchPad(16);
if (nValue < 0)
{
*i++ = CHAR_MINUS ;
nValue *= -1;
}
B = (nValue / 1000000000);
M = (nValue % 1000000000)/1000000;
T = (nValue % 1000000)/1000;
U = (nValue % 1000);
if (nMaxlen > 0)
{
if (nMaxlen > 16)
nMaxlen = 16;
if (i[0]== CHAR_MINUS)
nMaxlen-- ;
if (B) nMaxlen -= 13;
else if (M > 99)nMaxlen -= 11;
else if (M > 9) nMaxlen -= 10;
else if (M) nMaxlen -= 9;
else if (T > 99)nMaxlen -= 7;
else if (T > 9) nMaxlen -= 6;
else if (T) nMaxlen -= 5;
else if (U > 99)nMaxlen -= 3;
else if (U > 9) nMaxlen -= 2;
else
nMaxlen-- ;
for (; nMaxlen > 0; nMaxlen--)
*i++ = CHAR_SPACE ;
}
if (B) sprintf(i, "%u,%03u,%03u,%03u", B, M, T, U) ;
else if (M) sprintf(i, "%u,%03u,%03u", M, T, U) ;
else if (T) sprintf(i, "%u,%03u", T, U) ;
else sprintf(i, "%u", U) ;
return pBuf ;
}