Retrouver une sous extension.

Contenu du snippet

// 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);
  }
}


Compatibilité : C

A voir également

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.