Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

fabiano_

gravar dados no meio de um arquivo

Recommended Posts

Pessoal, gostaria de saber de como gravar uma string no meio de um arquivo, sem apagar o que esta la.ex 000100030004gravando 00020001000200030004gravavar na posicao vai sem problemas,mas apaga o que estava na posição.#include <stdio.h>#include <stdlib.h>#include <conio.h>void meio();//Variaveis GlobaisFILE *Arquivocoleta;char bufgeral[20];char pedido[9];void main(void){ int i=0; clrscr(); sprintf(bufgeral,"0002",4); meio();};void meio(){if ((Arquivocoleta=fopen("coleta.txt","r+"))==NULL) { printf("ERRO AO ABRIR ARQUI"); exit(1); } else { fseek(Arquivocoleta,(4*1),0); aponta para o final da linha 1 if(fwrite(bufgeral,4,1,Arquivocoleta)!=1); //grava na linha 2 } fclose(Arquivocoleta);}

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal, gostaria de saber de como gravar uma string no meio de um arquivo, sem apagar o que esta la.

ex

0001

0003

0004

 

gravando 0002

 

0001

0002

0003

0004

 

gravavar na posicao vai sem problemas,mas apaga o que estava na posição.

 

#include <stdio.h>

#include <stdlib.h>

#include <conio.h>

 

 

void meio();

 

//Variaveis Globais

FILE *Arquivocoleta;

 

char bufgeral[20];

char pedido[9];

 

void main(void)

{

int i=0;

clrscr();

sprintf(bufgeral,"0002",4);

meio();

 

};

 

 

void meio()

{

 

 

if ((Arquivocoleta=fopen("coleta.txt","r+"))==NULL)

{

printf("ERRO AO ABRIR ARQUI");

exit(1);

}

else

{

fseek(Arquivocoleta,(4*1),0); aponta para o final da linha 1

if(fwrite(bufgeral,4,1,Arquivocoleta)!=1); //grava na linha 2

 

 

}

fclose(Arquivocoleta);

 

}

use a+ inves de r+ na fopen

 

fopen("coleta.txt","a+")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Arquivos + estrutura é o segredo, não há coisa mais facil que gravar usando estruturas... mto 10..Pelo que sei não há saida gravando cada variavel, pois ele vai gravar no arquivo as variaveis de acordo com o que vai lendo, e se ele gravar no arquivo as variaveis A e B, e depois se o usuario quiser ver o valor de B primeiro, vai ver o valor de A, pois foi gravada primeiramente, sacow?!

Compartilhar este post


Link para o post
Compartilhar em outros sites

os dados foram gravados sequencialmente e após o termino, o cliente entra com novos dados,e para a consulta tenho que deixar o arquivo ordenado.se caso o cliente quiser ver o valor de A ou B eu faço uma busca binaria e ja era.estou mudando o projeto, estou abrindo o arquivo em uma lista encadeada. parece mais ser mais facil.

Compartilhar este post


Link para o post
Compartilhar em outros sites

não sei como está seu codigo agora mas...você pode manipular a posição em q vai ser gravado no arquivo com a função fseek

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.