#include #include #include #include /* Wandelt eine Integerzahl in eine Zeichenkette um */ /* und formatiert die Zahl mit Tausender-Trennzeichen. */ LPSTR ltos(long lValue, LPSTR lpszBuffer, char chThousand) { int iSource, iDest, nCounter; char szNumber[33]; memset(&szNumber, '\0', sizeof(szNumber)); /* Zahl in eine ASCIIZ-Zeichenkette wandeln */ _ltoa(lValue, szNumber, 10); /* Nullbasierter Index auf letzte Ziffer */ iSource = strlen(szNumber) - 1; /* Neuer nullbasierter Index inkl. der Trennzeichen */ iDest = iSource + iSource / 3; /* Schleifenzähler */ nCounter = 0; /* Ziffer für Ziffer umkopieren. */ /* Nach jeder 3. Ziffer ein Tausenderzeichen einfügen. */ while (iSource >= 0) { if ((nCounter == 3) && (szNumber[iSource] != '-')) { szNumber[iDest--] = chThousand; nCounter = 0; } szNumber[iDest--] = szNumber[iSource--]; nCounter++; } return lstrcpy(lpszBuffer, szNumber); }