Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void adicionar_digito9_ao_telefone(FILE * pFile)
- {
- int id;
- int encontrou = 0;
- FILE *newFile = fopen("temp.dat","w+");
- int NumeroDeEntradasNoArquivo = 5;
- //Contato sendo lido AGORA
- CONTATO_T c;
- //Espaço para os contatos da lista
- CONTATO_T contatosDoArquivo[NumeroDeEntradasNoArquivo];
- //Contador / index dos contatos
- int indexContato=0;
- //Variavel que irá estocar temporariamente os valores dos novos telefones móveis
- char novo_t_movel[13];
- //contador generico do programa
- int contador = 0;
- //Este loop irá ler todas as entradas presentes no arquivo. (Atencao ao número máximo que cabe no contatosDoArquivo, ok?)
- while (fscanf(pFile,"%d %s %d %d %d %s %s %s", &c.id,c.nome,&c.dia,&c.mes,&c.ano,c.email,c.t_movel,c.t_fixo)!= EOF)
- {
- contatosDoArquivo[indexContato].id = c.id;
- contatosDoArquivo[indexContato].nome = c.nome;
- contatosDoArquivo[indexContato].dia = c.dia;
- contatosDoArquivo[indexContato].mes = c.mes;
- contatosDoArquivo[indexContato].ano = c.ano;
- contatosDoArquivo[indexContato].email = c.email;
- contatosDoArquivo[indexContato].t_movel = t_movel;
- contatosDoArquivo[indexContato].t_fixo = t_fixo;
- indexContato++;
- }
- //Colocamos na variavel temporaria i a quantidade de contatos. Lembrando que a contagem começa em 0, isto é
- //0 é uma posicao valida.
- i = indexContato;
- //Este loop irá passar de contato em contato, adicionando 9 aos números de telefone móvel de cada contato.
- while( i > = 0){
- //A estrategia é montar uma nova string de telefone aqui dentro, e descatar a anterior
- //Primeiro novo digito - 9
- novo_t_movel[0] = 9;
- //Esse loop ira passar os demais valores para a nova variavel.
- for(contador = 1; contador < 13; contador++)
- novo_t_movel[contador] = contatosDoArquivo[i].t_movel[contador - 1]
- //Agora que o novo numero está 100% convertido, passamos o seu ponteiro para a nossa lista de contatos.
- contatosDoArquivo[i].t_movel = novo_t_movel;
- i--;
- }
- //Fecha o ponteiro e exclui o arquivo da agenda original. A ideia é regravá-lo com os novos dados.
- fclose(pFile);
- remove("agenda.dat");
- //Essa funcao escreve o arquivo os dados.
- for(contador = 0; contador = indexContato - 1; contador++ ){
- fprintf(newFile,"%d %s %d %d %d %s %s %s\n", contatosDoArquivo[contador].id,contatosDoArquivo[contador].nome,contatosDoArquivo[contador].dia,contatosDoArquivo[contador].mes,contatosDoArquivo[contador].ano,contatosDoArquivo[contador].email,contatosDoArquivo[contador].t_movel,contatosDoArquivo[contador].t_fixo);
- }
- //Essa funcao renomeia o arquivo anterior para o seu novo nome.
- rename("temp.dat","agenda.dat");
- //destruimos o ponteiro novo.
- fclose(newFile);
- //Por fim, devemos abrir o arquivo novamente e colocalo no ponteiro anterior (o do começo do codigo)
- pFile = fopen("agenda.dat", "r+");
- //Printa a frase desejada.
- printf("DIGITO 9 ADICIONADO AOS CELULARES\n");
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement