Ajuda manipulação de arquivos em C.

1. Ajuda manipulação de arquivos em C.

Anderson Tabaldi
tabaldi

(usa BackTrack)

Enviado em 25/04/2017 - 15:32h

Estou manipulando arquivos em C com a função: fopen("arquivo.txt" , "modo_abertura").
Obtive sucesso nas funções para leitura do arquivo, escrita e incrementação.

Mas preciso saber se é possível ler os dados do arquivo, printar no DOS do código e após isto realizar a alteração.Ou simplesmente alterar uma unica variável, supondo que gravei duas variáveis no arquivo.

Acredito que esta opção não esteja disponível usando a função citada, pois não existe um modo de abertura do arquivo para editar.


  


2. Re: Ajuda manipulação de arquivos em C.

Paulo
paulo1205

(usa Ubuntu)

Enviado em 25/04/2017 - 17:49h

Você já leu a documentação da função fopen()? Se não leu, recomendo que leia. Você verá que existem três modos básicos de abertura, mas que existem opções que modificam tais modos.

Resumo rápido dos modos:

- "r": abre um arquivo já existente para leitura; se o arquivo não existir, a abertura falha.
- "w": cria um arquivo novo e zerado para escrita; se o arquivo já existir, seu conteúdo anterior é apagado.
- "a": abre um arquivo para escrita sempre no final; se o arquivo não existir, cria-o.

Há dois modificadores padronizados, que podem aparecer após a letra que indica o modo básico. O primeiro modificador é o caráter "+", que afeta os modos básicos das seguintes maneiras:

- "r+", semelhante a “r”, mas acrescenta a possibilidade de realizar também operações de escrita.
- "w+", semelhante a "w", mas acrescenta a possibilidade de fazer leituras de partes já escritas do arquivo.
- "a+", semelhante a "a", mas acrescenta a possibilidade de fazer leituras de partes já escritas do arquivo (mas as gravações continuam ocorrendo sempre ao final do arquivo).

O outro modificador é o caráter "b", que faz com que todas as funções de entrada e saída sobre o arquivo se comportem como se o arquivo fosse binário, em vez de apenas texto. Sistemas da Microsoft e versões clássicas do MacOS utilizam combinações de caracteres para marcar fim de linha diferentes daquela que é usada tradicionalmente pelo C, de modo que não se deve usar o modificador "b" com arquivos de texto. O UNIX não faz distinção entre arquivos de texto e binários, pois a mesma convenção usada pelo C é usada também pelas ferramentas nativas do sistema.


3. Manipulação de arquivos

Anderson Tabaldi
tabaldi

(usa BackTrack)

Enviado em 26/04/2017 - 16:55h

Amigo,

Não estou encontrando problema em manipular o arquivo nas funções de leitura, escrita ou acrescentar.
Queria mesmo só saber se após escrever alguma string no txt com o código se seria possível trazer esta string até o DOS e editá-la, usando um ponteiro para apontar aonde está a string, supondo que tenhas varias strings no txt.


4. Re: Ajuda manipulação de arquivos em C.

Paulo
paulo1205

(usa Ubuntu)

Enviado em 26/04/2017 - 20:11h

Arquivos em C são sequências de bytes, suportando as seguintes operações:

- zerar a sequência (como acontece com fopen(arquivo, "w"));
- ler bytes da sequência;
- sobrescrever bytes da sequência ou acrescentar bytes ao final da sequência;
- reposicionar o ponteiro de leitura e gravação da sequência.

Eu não sei exatamente o que você quer dizer quando fala em “editar” um arquivo. Se for com uma das operações acima, então tudo bem.

Já se você estiver falando de acrescentar ou remover pedaços no meio do arquivo, sem simplesmente sobrescrever e sem afetar blocos que cercam o bloco a ser acrescentado ou removido, então essa “edição” não pode ser feita diretamente, usando apenas uma função padronizada. Você teria de construir um algoritmo para tanto. Não raramente, isso se faz com o uso de um segundo arquivo, que acomodaria o conteúdo “editado”, e tal arquivo podendo depois vir a substituir o arquivo original.


5. Resp

Anderson Tabaldi
tabaldi

(usa BackTrack)

Enviado em 27/04/2017 - 09:12h

Era exatamente isto, editar um texto no meio do txt....
E como eu suspeitava o C não disponibiliza uma função pré-definida

Obrigado!


6. Re: Ajuda manipulação de arquivos em C.

Aron L. O. dos Santos
aron.oliveira

(usa Ubuntu)

Enviado em 27/04/2017 - 09:16h

Eu nunca utilizei esse tipo de editor em .txt, mas existe o programa Walk. Nesse você consegue editar qualquer pedaço do programa desejado. Entretanto, é preciso estudar um pouco da linguagem, mas não é impossível ou muito complicado de aprender.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts