[off] Dúvida em programaçã o em c abrir lista do xmms.
Bom dia.
Estou tentado fazer um programa em c que vai ler um
arquivo
de texto na verdade a lista xmms(player de mp3), para
gravar um cd de audio baseado na lista chamando a função
system("mpg123 --cdr - ARQUIVO_QUE_VOU CONCATENAR_VINDO_DA_LISTA_DO_XMMS
| cdrecord -v speed=4 dev=0,0,0 -nofix -audio -");
tudo bem consigo ler o a lista e imprimir na tela exemplo
do que sai na tela.
#EXTM3U
#EXTINF:621,Antonio Vivaldi - Summer
/mnt/hda7/Musicas/Vivaldi - Four Seasons - Summer.mp3
#EXTINF:302,ANGRA - CARRY ON
/mnt/hda7/Musicas/Angra - Carry On.mp3
#EXTINF:340,Angra - Judgement Day
/mnt/hda7/Musicas/Angra - Judgement Day.mp3
#EXTINF:291,Angra - Nova era
/mnt/hda7/Musicas/Angra - Nova era.mp3
Ou seja primeira linha
#EXTM3U --> informação inutil para meu programa
#EXTINF:621,Antonio Vivaldi - Summer --> informação
inutil
para meu programa
/mnt/hda7/Musicas/Vivaldi - Four Seasons - Summer.mp3
--> Informação que preciso para meu programa.
Ou seja primeira linha ignoro depois vou na rotina pulo
uma linha leio a próxima pulo uma linha leio a próxima
e por ai vai...
Tem como fazer algo parecido com o fseek? Pois não estou
sabendo em qual momento estou pulando linha ou não.
int fseek( FILE *fp, long offset, int whence
Oque e esse paramentro long offset???
Segue abaixo o script.
Grato,
Pablo Henrique
#include <stdio.h>
#include <stdlib.h>
int fsize(FILE *fp);
int main(int argc, char **argv){
FILE *fp;
char *musicas;
int i;
if(argc < 2){
printf("\nparametros incorretos!\n");
exit(1);
}
if((fp = fopen(argv[1],"r")) == NULL){
printf("\narquivo não encontrado\n");
}
musicas = (char *) malloc(sizeof(char) * fsize(fp));
if(musicas == NULL){
printf("\nfalta de memória\n");
exit(0);
}
i = 0;
while(!feof(fp)){
musicas[i] = fgetc(fp);
printf("%c",musicas[i]);
i ++;
}
fclose(fp);
return(0);
}
int fsize(FILE *fp){
int contador = 0;
char tmp[1];
while(!feof(fp)){
contador ++;
tmp[0] = fgetc(fp);
}
//volta para o inicio do arquivo
fseek(fp,0,SEEK_SET);
return(contador);
}
Reply to: