04. august 2000 - 23:43
Der er
3 kommentarer og
1 løsning
ID3 tage udlæsning
Er der nogen der har noget kode til udlæsning af ID3 Tags fra MP3 filer.
Jeg skal nemlig bruge det til at udlæse det far filer med og skive det ud på et LCD Display.
Det skal være noget der kan køre under DOS og det skal være sådan at den bare skal have et input som er filnavnet og så skal den kunne give et output som er tingene fra ID3 Taget.
Og hvsi det er en størrere opgave kan jeg sagtens førhøje Pointene, da jeg ikke aner noget om hvor svært det er.
05. august 2000 - 03:24
#2
Er følgende acceptabelt?
Genre feltet er angivet som en byte værdi og der skal derfor oprettes en tabel med alle genre i, man skal slå op i.
#include <stdio.h>
#include <string.h>
#include <iostream.h>
void main(int argc, char **argv)
{
FILE *fp;
char title[30],artist[30],album[30],year[4],comment[30], *s;
short genre;
if(argc>1)
{
fp=fopen(argv[1], \"r\");
if(fp)
{
if((fseek(fp, -129, 2)==0)&&(strcmp((const char *)fp, \"TAG\")==0))
{
s=(char *)fp;
s+=3;
strcpy(title, s);
strcpy(artist, s+30);
strcpy(album, s+30+30);
strcpy(year, s+30+30+30);
strcpy(comment, s+30+30+30+4);
genre=*s+30+30+30+4+30;
cout << \"Artist : \" << artist << \"\\n\";
cout << \"Title : \" << title << \"\\n\";
cout << \"Album : \" << album << \"\\n\";
cout << \"Year : \" << year << \"\\n\";
cout << \"Comment: \" << comment << \"\\n\";
}
else
{
cout << \"Error: ID3 Tag not found in \" << argv[1] << \"\\n\";
}
fclose(fp);
}
else
{
cout << \"Error: Unable to open \" << argv[1] << \"\\n\";
}
}
else
{
cout << \"Usage: SHOWID3TAG <filename>\\n\";
}
}
05. august 2000 - 04:38
#3
hehe.. var vist lidt fuld da jeg lavede det første svar =)
Her er en der meget gerne skulle VIRKE! =)
..men altså stadig uden Genre, men skal du bruge det?
#include <stdio.h>
#include <string.h>
#include <iostream.h>
void main(int argc, char **argv)
{
FILE *fp;
char title[32],artist[32],album[32],year[6],comment[32], *s;
if(argc>1)
{
fp=fopen(argv[1], \"r\");
if(fp)
{
if((fseek(fp, -128, 2)==0)&&(strcmp(fgets(title,4,fp),\"TAG\")==0))
{
fgets(title, 31, fp);
fgets(artist, 31, fp);
fgets(album, 31, fp);
fgets(year, 5, fp);
fgets(comment, 31, fp);
cout << \"Artist : \" << artist << \"\\n\";
cout << \"Title : \" << title << \"\\n\";
cout << \"Album : \" << album << \"\\n\";
cout << \"Year : \" << year << \"\\n\";
cout << \"Comment: \" << comment << \"\\n\";
}
else
{
cout << \"Error: ID3 Tag not found in \" << argv[1] << \"\\n\";
}
fclose(fp);
}
else
{
cout << \"Error: Unable to open \" << argv[1] << \"\\n\";
}
}
else
{
cout << \"Usage: SHOWID3TAG <filename>\\n\";
}
}
05. august 2000 - 04:40
#4
oops! =) ... s variablen bli\'r vist ikke brugt =)
..nå ja, en enkelt warning er vel til at leve med? ..ellers slet den =)