[an error occurred while processing this directive]
|
/* Функция, преобразующая число типа int в ASCII строку */
// Возвращает указатель на
char* q_itoa(WORD NN, char cfield, BYTE col)
{
BYTE ostatok;
WORD chast;
BYTE i;
tmpstring[0] = cfield;
tmpstring[1] = cfield;
tmpstring[2] = cfield;
tmpstring[3] = cfield;
tmpstring[4] = '0';
tmpstring[5] = 0;
i = 4;
while(NN >= 10)
{
chast = NN/10;
ostatok = NN - (chast*10);
NN = chast;
tmpstring[i] = 0x30 + ostatok;
i--;
}
tmpstring[i] = 0x30 + NN;
if(col > 5) return (&tmpstring[i]);
else return (&tmpstring[5] - col);
}
tmpstring[] - буфер с результатом
col - это количество знаков "до запятой", т.е. если col = 3, а число 23, то результат будет "023"
cfield - символ, которым заполняются пустые места, т.е., если cfield = '0', то рез-т будет "023", если col == 32 (пробел), то " 23".
Думаю, можно было и покороче и пологичнее все это обстряпать, да как-будто и это работает.
E-mail: info@telesys.ru