Ir para conteúdo

POWERED BY:

Arquivado

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

lord_vaynard

Como gravar e ler arquivos formatados em disco?

Recommended Posts

Boa tarde a todos!!!

 

Eu estou fazendo um projeto e preciso gravar dados em disco, por enquanto estou gravando em um .txt mas futuramente irei abrir este arquivo no excel, por isso preciso usar uma mascara que seja facilmente adaptada.

 

Estou gravando em disco assim: fprintf(arquivo,"%-30s",dadosGravados);

Existem 11 campos nesta estrutura, e para cada um estou colocando um fprintf, mas ao ler com o fscanf e usar a mesma máscara ele não busca corretamente os dados, sempre pega lixo eu entra em um loop infinito.

 

Qualquer idéia é bem vinda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Já tentou com fwrite e fread?

Fread e Fwrite são gravação aleatória, não tem como você formatar o arquivos destino, ele sempre vai gravar do jeito que bem entender...

 

E eu preciso gerar um relatório formatado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com fread e fwrite voce consegue gravar e ler blocos com tamanho conhecido.

Se for o caso use arquivo binário e fwrite para gravar.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Já tentou com fwrite e fread?

Fread e Fwrite são gravação aleatória, não tem como você formatar o arquivos destino, ele sempre vai gravar do jeito que bem entender...

 

E eu preciso gerar um relatório formatado.

 

 

Se ele está lendo sujeira é porque foi gravado sujeira ou no meio de sujeira. rs

Compartilhar este post


Link para o post
Compartilhar em outros sites

Com fread e fwrite voce consegue gravar e ler blocos com tamanho conhecido.

Se for o caso use arquivo binário e fwrite para gravar.

 

http://forum.imasters.com.br/public/style_emoticons/default/thumbsup.gif

 

Já tentou com fwrite e fread?

Fread e Fwrite são gravação aleatória, não tem como você formatar o arquivos destino, ele sempre vai gravar do jeito que bem entender...

 

E eu preciso gerar um relatório formatado.

 

 

Se ele está lendo sujeira é porque foi gravado sujeira ou no meio de sujeiro. rs

 

 

Se você visualizar o arquivo ele esta gravado corretamente no formato que eu preciso.

Ex: codigo ;nome do cliente ;cidade ; ...

001 ;Proteção Total ;São Paulo; ...

 

Acima é somente um exemplo...

mas quando vou ler este arquivo é que está dando problema....

Compartilhar este post


Link para o post
Compartilhar em outros sites

leia com fgets e mostre o conteúdo até achar eof.

Pode usar feof dentro do loop while.

 

Imprima todo o conteúdo para verificar se há alguma coisa errada com a formatação na escrita do arquivo.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na hora que for ler: tire aquele sinal de menos que você botou no fprintf mas que NÃO deve ter no fscanf. Aqui funcionou direitinho depois disso.

 

PS. com fread e fwrite também dá como eu disse, a diferença é que só fica legível pela máquina o arquivo e tenho certeza que diminui o tamanho também. Aqui vai um exemplo com os dois jeitos em utilização: stuff.mihopa.info/bin.rar

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.