// 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); } }
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.