Ir para conteúdo
Fórum Script Brasil
  • 0

Erro Ao Regravar Arquivo


Guest jct

Pergunta

Sres,

não estou conseguindo regravar um registro em arquivo. No exemplo em anexo, eu crio o arquivo, grava, listo, mas quando tento gravar novamente um registro, dá erro ( o fwrite retorna 0) e não grava. Alguém pode dar uma dica aí ?

Sds,

jct

#include <stdio.h>

#include <conio.h>

#include <stdlib.h>

#include <iostream.h>

#include <string.h>

#include <ctype.h>

typedef struct

{

int sequencia;

int hora;

int minuto;

char caminho[60];

char ativo;

char semana[8];

}dados;

FILE *arquivo;

dados *tarefa=(dados *)malloc(sizeof(dados));

int main(int argc, char *argv[])

{

clrscr();

arquivo=fopen("C:\TEMP\dados.dat","a+t");

if(arquivo==NULL)

{

clrscr();

cout <<"Problemas na abertura do arquivo C:\TEMP\DADOS.DAT !

"

<<"O programa sera finalizado !

"

<<"Pressione <Enter> !";

getch();

return 0;

};

for(int i=0;i<5;i++){

cout<<endl<<"incluindo registro.. "<<i<<endl;

tarefa->sequencia=i;

tarefa->hora=10;

tarefa->minuto=20;

strcpy(tarefa->caminho,"C:\WINDOWS\*.*");

tarefa->caminho[59]='';

tarefa->ativo='A';

strcpy(tarefa->semana,"XXXXXXX");

tarefa->semana[7]='';

cout<<endl<<"status da gravacao>> "<<fwrite(tarefa,sizeof(dados),1,arquivo)<<endl;

}

fclose(arquivo);

getch();

arquivo=fopen("C:\TEMP\dados.dat","a+t");

if(arquivo==NULL)

{

clrscr();

cout <<"Problemas na abertura do arquivo C:\TEMP\DADOS.DAT !

";

getch();

return 0;

};

fseek(arquivo,0L,0);

fread(tarefa,sizeof(dados),1,arquivo);

while(!feof(arquivo)){

cout<<endl<<"sequencia: "<<tarefa->sequencia<<endl;

cout<<"hora.....: "<<tarefa->hora<<endl;

cout<<"minuto...: "<<tarefa->hora<<endl;

cout<<"caminho..: "<<tarefa->caminho<<endl;

cout<<"ativo....: "<<tarefa->ativo<<endl;

cout<<"semana...: "<<tarefa->semana<<endl<<endl;

getch();

fread(tarefa,sizeof(dados),1,arquivo);

};

fclose(arquivo);

arquivo=fopen("C:\TEMP\dados.dat","a+t");

if(arquivo==NULL)

{

clrscr();

cout <<"Problemas na abertura do arquivo C:\TEMP\DADOS.DAT !

";

getch();

return 0;

};

fseek(arquivo,0L,0);

fread(tarefa,sizeof(dados),1,arquivo);

while(!feof(arquivo)){

if(tarefa->sequencia==2){

clrscr();

cout<<"alterando registro 2... "<<endl;

getch();

tarefa->hora=22;

tarefa->minuto=22;

strcpy(tarefa->caminho,"F:\SISTEMAS\*.*");

tarefa->caminho[59]='';

tarefa->ativo='I';

strcpy(tarefa->semana," ");

tarefa->semana[7]='';

cout<<tarefa->sequencia<<endl;

cout<<tarefa->hora<<endl;

cout<<tarefa->minuto<<endl;

cout<<tarefa->caminho<<endl;

cout<<tarefa->ativo<<endl;

cout<<tarefa->semana<<endl;

cout<<endl<<"status "<<fwrite(tarefa,sizeof(dados),1,arquivo);

getch();

}

fread(tarefa,sizeof(dados),1,arquivo);

}

fclose(arquivo);

arquivo=fopen("C:\TEMP\dados.dat","a+t");

if(arquivo==NULL)

{

clrscr();

cout <<"Problemas na abertura do arquivo C:\TEMP\DADOS.DAT !

";

getch();

return 0;

};

fseek(arquivo,0L,0);

cout<<endl<<"listando registros "<<endl;

fread(tarefa,sizeof(dados),1,arquivo);

while(!feof(arquivo)){

cout<<"sequencia: "<<tarefa->sequencia<<endl;

cout<<"hora.....: "<<tarefa->hora<<endl;

cout<<"minuto...: "<<tarefa->hora<<endl;

cout<<"caminho..: "<<tarefa->caminho<<endl;

cout<<"ativo....: "<<tarefa->ativo<<endl;

cout<<"semana...: "<<tarefa->semana<<endl<<endl;

getch();

fread(tarefa,sizeof(dados),1,arquivo);

}

fclose(arquivo);

system("del c:\temp\dados.dat");

return 0;

}

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...