PDA

View Full Version : [C] Estensione


max246
05-11-2005, 16:47
Ciao a tutti,
sto cercando di catturare la ESTENSIONE del file letto, questo file è scritto in una variabile CHAR e per sapere se questo file è .mp3 faccio questa funzione:

int extmp3 (char parola[],int num) {
for (int x = 0;x<50;x++) {
if (parola[x] == '.' && parola[x+1] == 'm' && parola[x+2] == 'p' && parola[x+3] == '3') {

printf ("%s \n",parola);

}
}
}

Non mi chiedete per che è int perchè serve per me ;), ora mi chiedo... perche mi cattura tutti gli mp3 e mi cattura pure desktop.ini .. main.o ecc.. ? :S

esiste un'altro sistema per confrontare l'estensione?

cionci
05-11-2005, 17:16
int i=strlen(parola);

while(--i > 0)
{
if(parola[i] == '.')
break;
}

if(i == 0)
return FALSO;

if(strcmp(&parola[i], ".mp3") == 0)
return VERO;

return FALSO;

max246
05-11-2005, 20:41
int i=strlen(parola);

while(--i > 0)
{
if(parola[i] == '.')
break;
}

if(i == 0)
return FALSO;

if(strcmp(&parola[i], ".mp3") == 0)
return VERO;

return FALSO;



Ti amo :sbav: :sbav: :sbav: :sbav: :sbav: :sbav: :ave: :ave: :ave: :ave: :smack: :smack: :smack:

Qu@ker
05-11-2005, 22:53
int isMP3(const char *nomefile)
{
char *lastdot = strrchr(nomefile, '.');

return (lastdot &&
strcmp(lastdot, ".mp3") == 0);
}

bottomap
05-11-2005, 23:33
Ciao,

Alternativamente puoi utilizzare la _splitpath... si occupa lei di spezzare un intero path nelle sue componenti principali (in buffer separati)...

Altrimenti la strrchr postata da Qu@ker è l'ipotesi migliore...

Ciaociao :)

max246
05-11-2005, 23:58
int isMP3(const char *nomefile)
{
char *lastdot = strrchr(nomefile, '.');

return (lastdot &&
strncmp(lastdot, ".mp3", 4) == 0);
}



Grazie cmq :D

Ho trovato il primo ;) e funziona... ora devo riuscire a convertire gli slamples in secondi.... e fare un SELEZIONA CARTELLA :)