Jump to content
Conniott

Guardar um ficheiro com dados numa lista

Recommended Posts

Conniott

Boa tarde, estou a fazer um projecto de programação em que necessito de guardar os conteúdos de dados um ficheiro do tipo wav numa lista para depois poder aceder a essa lista e poder eliminar alguns desses dados e gravar como novo ficheiro de música.

Excerto do Código:

typedef struct
{
   char info_geral;
   char n_amostras;
}t_inform;


typedef struct no_ls{
   char sinal; //campo que contém os dados a armazenar no nó
  t_inform info_geral;
   struct no_ls *prox; //ponteiro para o próximo nó da lista
}t_no_ls;

t_no_ls* importar_fich(void){
FILE *music; // ponteiro para ficheiro
t_no_ls *aux;
t_no_ls *lista;
int i,n_amostras=0;


music=fopen("prog2.wav", "rb");
if(music ==NULL){
   printf("Erro na criacao do ficheiro!");
   getch();}
else
   printf("Ficheiro fomato wav carregado!\n");
   fseek(music,0L, SEEK_END);
   printf("Dimensão do ficheiro em bytes= %ld", ftell(music));
   getch();
   copia();

   }


int copia(void){
   FILE *music;
   FILE *f2;
   char a;


   music= fopen("prog2.wav", "rb");
   f2= fopen("exemplo45.wav", "wb");

   if (music && f2)
   {

       fseek(music,44, SEEK_SET);
       printf("\nPosicao= %ld", ftell(music));
       getch();
       while (feof(music)==0)
           {
           fread(&a,sizeof(char),1,music);
           fwrite(&a,sizeof(char),1,f2);
           }
       fclose(music);
       fclose(f2);
   }

   return 0;
}

Usei este codigo para fazer a importação do ficheiro, e agora apenas quero guardar o contéudo do ficheiro f2 numa lista mas não sei como o fazer, agradecia a vossa ajua o mais rápido possivel!

Cumprimentos, Wilson.

Edited by thoga31
Tags code + GeSHi

Share this post


Link to post
Share on other sites
HappyHippyHippo

e que tal, em vez de pensares em "abrir o ficheiro" e "ler o ficheiro" e "gravar no ficheiro", criasses uma lista correctamente ?

- como crias a lista ?

- como manipulas a lista ? (isto é o mais importante)

- as estruturas usadas estão correctas ? ( a meu ver não ... )

depois de responderes a estas questões, cria/altera o teu código de manipulação da lista, separa-o para outros ficheiros (.h e .c) e só depois pensa como tratar dos ficheiros.

  • Vote 1

IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Conniott

Eu tenho de abrir o ficheiro e depois posicioná-lo de forma a poder fazer a cópia apenas da parte dos dados para uma lista e nessa lista sim vou depois poder andar a alterar a informação que lá guardei.

Pois esse é mesmo o meu problema não sei como criar corretamente a lista de forma a poder gravar lá o que pretendo, basicamente não percebo listas e precisava da vossa ajuda para isso

Share this post


Link to post
Share on other sites
HappyHippyHippo

e o que não percebes de listas ?

o que já vistes/aprendestes/leste sobre listas ligadas ?


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites
Conniott

O modo de lhes aceder e conseguir guardar lá o conteúdo pretendido, já li todos os powerpoints da cadeira mais que uma vez e não percebo!

Se quiseres podes dar a tua sugestão de código para como eu faria para guardar os dados do meu ficheiro f2 numa lista, podendo até ser numa outra diferente que a que eu penso sff. O projecto é só para entregar em Janeiro mas já tenho tentado trabalhar nisso e se conseguir fazer esta parte bem julgo que conseguirei editar o sinal que é o que se segue mas esta é a parte que menos entendo

Share this post


Link to post
Share on other sites
Conniott

manipulação de sinal. Tenho de importar um sinal do tipo wav abri-lo, editá-lo e reproduzi-lo basicamente, mas para o editar terei de guardar a sua informação dos dados (ignorando o cabeçalho do ficheiro) numa lista para poder modifica-lo depois

Share this post


Link to post
Share on other sites
HappyHippyHippo

se o trabalho não é sobre listas, usa uma que já existe (código já criado por outra pessoa)

existem muitos exemplos aqui no fórum assim como na wiki.

podes mesmo usar o código que eu disponibilizei à um par de semanas :

https://www.portugal-a-programar.pt/topic/63688-c-codigo-auxiliar-para-iniciantes-leitura-teclado-linked-list/?do=findComment?comment=535849


IRC : sim, é algo que ainda existe >> #p@p

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.