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 !
Pergunta
Guest jct
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.