Return TypeFunction nameArguments
const char*FormalNumber(long,unsigned int,)

Declared in file: hzTextproc.h
Defined in file : hzTextproc.cpp

Function Logic:

0:START 1:_hz_func_reg::ScratchPad pBuf i 2:nValue<0 3:* nValue 4:a b c B M T U 5:nMaxlen>0 6:nMaxlen>27 7:nMaxlen 8:i[0]==(char)45 9:items 10:a>9 11:nMaxlen 12:a 13:nMaxlen 14:b>99 15:nMaxlen 16:b>9 17:nMaxlen 18:b 19:nMaxlen 20:c>99 21:nMaxlen 22:c>9 23:nMaxlen 24:c 25:nMaxlen 26:B>99 27:nMaxlen 28:B>9 29:nMaxlen 30:B 31:nMaxlen 32:M>99 33:nMaxlen 34:M>9 35:nMaxlen 36:M 37:nMaxlen 38:T>99 39:nMaxlen 40:T>9 41:nMaxlen 42:T 43:nMaxlen 44:U>99 45:nMaxlen 46:U>9 47:nMaxlen 48:items 49:nMaxlen>0; 50:* 51:a 52:sprintf 53:b 54:sprintf 55:c 56:sprintf 57:B 58:sprintf 59:M 60:sprintf 61:T 62:sprintf 63:sprintf 64:Return pBuf

Function body:

const char* FormalNumber (long nValue, unsigned int nMaxlen)
{
   _hzfunc("FormalNumber_a") ;
   char*       i ;
   char*       pBuf ;
   uint32_t    a ;
   uint32_t    b ;
   uint32_t    c ;
   uint32_t    B ;
   uint32_t    M ;
   uint32_t    T ;
   uint32_t    U ;
   i = pBuf = _thisfn.ScratchPad(32);
   if (nValue < 0)
   {
       *i++ = CHAR_MINUS ;
       nValue *= -1;
   }
   a = (uint32_t) ((nValue / 1000000000000000000))&0xffff;
   b = (uint32_t) ((nValue % 1000000000000000000)/1000000000000000)&0xffff;
   c = (uint32_t) ((nValue % 1000000000000000)/1000000000000)&0xffff;
   B = (uint32_t) ((nValue % 1000000000000)/1000000000)&0xffff;
   M = (uint32_t) ((nValue % 1000000000)/1000000)&0xffff;
   T = (uint32_t) ((nValue % 1000000)/1000)&0xffff;
   U = (uint32_t) ((nValue % 1000))&0xffff;
   if (nMaxlen > 0)
   {
       if (nMaxlen > 27)
           nMaxlen = 27;
       if (i[0]== CHAR_MINUS)
           nMaxlen-- ;
       if      (a > 9)     nMaxlen -= 26;
       else if (a)         nMaxlen -= 25;
       else if (b > 99)nMaxlen -= 23;
       else if (b > 9)     nMaxlen -= 22;
       else if (b)         nMaxlen -= 21;
       else if (c > 99)nMaxlen -= 19;
       else if (c > 9)     nMaxlen -= 18;
       else if (c)         nMaxlen -= 17;
       else if (B > 99)nMaxlen -= 15;
       else if (B > 9)     nMaxlen -= 14;
       else 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      (a) sprintf(i, "%d,%03d,%03d,%03d,%03d,%03d,%03d", a, b, c, B, M, T, U) ;
   else if (b) sprintf(i, "%d,%03d,%03d,%03d,%03d,%03d", b, c, B, M, T, U) ;
   else if (c) sprintf(i, "%d,%03d,%03d,%03d,%03d", c, B, M, T, U) ;
   else if (B) sprintf(i, "%d,%03d,%03d,%03d", B, M, T, U) ;
   else if (M) sprintf(i, "%d,%03d,%03d", M, T, U) ;
   else if (T) sprintf(i, "%d,%03d", T, U) ;
   else        sprintf(i, "%d", U) ;
   return pBuf ;
}