// MET DANS dst CE QUI EST ENTRE LES 2 POINTS APRES "\" FINAL
// SI PAS DE "\" AVANT LES POINTS, PAS BON
// RETOURNE NBR CARACTERES MIS DANS dst
// GetSubExtension("D:\File.txt.tmp", dst); dst contiendra "txt"
DWORD __stdcall GetSubExtension(char *src, char *dst)
{
char *d = dst, *p = 0; // d SERA POINTEUR DU DERNIER "\"
while(*src) {
if(*src == '\\') p = src;
src++;
} // FINIT SUR TERMINATEUR NULL DE CHAINE
if(!p) goto subEXIT;
do {
if(*--src == '.') goto okUN;
} while(src > p);
goto subEXIT;
okUN:
do {
if(*--src == '.') goto okDEUX;
} while(src > p);
goto subEXIT;
okDEUX:
do { // DEBUTE SUR 1er POINT
if(*++src == '.') break;
*d++ = *src;
} while(1);
subEXIT:
*d = 0;
return (d - dst);
}
void TestSubExt()
{
DWORD n;
char szdst[12], tot[12];
n = GetSubExtension("d:\\tr.u.c\\readme.txt.m", szdst);
if(n) {
ultoa(n, tot, 10);
MessageBox(0, szdst, tot, 0);
}
}