O motivo pelo qual se torna fundamental a utilização de ficheiros resulta da necessidade de perpetuar os dados para além do ciclo de vida de um programa.
Isto significa que os dados armazenados nas variáveis criadas pela execução do programa, residentes na memória principal que, como se sabe, é de natureza volátil, apenas se encontram disponíveis enquanto o programa está em execução. Este facto representa uma clara limitação à longevidade dos dados que, em última instância, ficam dependentes de termos o nosso programa em execução vinte e quatro horas por dia, pois caso o programa seja terminado ou o computador desligado tudo voltará ao ponto de partida.
Uma solução possível consiste na utilização de ficheiros, que pelo facto de serem armazenados em suportes secundários, não ficam dependentes do programa estar em execução ou de termos o nosso equipamento ligado.
Pretendo abordar neste artigo a Manipulação de Ficheiros em Linguagem C, apresentando os principais conceitos e disponibilizando alguns exemplos que espero sejam elucidativos.
Em termos de tipos de ficheiros, e uma vez que vamos abordar os modos texto/binários, vamos considerar duas grandes áreas:
- Ficheiros de Texto: Serão aqueles que contêm caracteres perceptíveis para o ser humano. São caracteres da tabela ASCII como algarismos, letras do alfabeto, caracteres de acentuação, pontução e outros como é o caso do caracter “New Line” que, apesar de não ser visível, representa uma mudança de linha.
- Ficheiros binários: Nos ficheiros binários não é bem a representação lógica dos seus bytes em caracteres que está em causa, mas o armazenamento da informação no seu formato mais elementar, ou seja, em sequências de uns e zeros.
Este artigo vai funcionar como “agregador” e será referenciado por todos os outros que lhe sejam relacionados, existindo em todos eles a possibilidade de navegação para este ponto.
Noções gerais:
Algumas noções que convém adquirir antes de começar a manipular ficheiros em Linguagem C.
Ficheiros de Texto:
Abordagem das noções elementares sobre a Manipulação de ficheiros de texto em Linguagem C.
- fopen e fclose
- Leitura/Escrita caracter-a caracter (fgetc/fputc)
- Leitura/Escrita formatada (fscanf/fprintf)
Ficheiros binários:
Abordagem das noções elementares sobre a Manipulação de ficheiros binários em Linguagem C.
Exemplos:
Colecção de alguns exemplos de programas que ajudem a perceber e exemplificar os assuntos aqui abordados.
Janeiro 6, 2009 ás 11:27 am
Excelente tutorial,muito explicito definitivamente,mas ainda faltam alguns aspectos de C a ser abordados
Janeiro 6, 2009 ás 3:50 pm
Obrigado AnbuRick!
De facto fica muita coisa por dizer e podemos encarar este artigo “apenas” como uma porta de entrada, que foi precisamente o efeito para o qual foi criado.
A publicação no blog resulta apenas do facto de eu acreditar que o conhecimento deve ser partilhado, e espero que possa vir a ser útil a alguém que eventualmente queira dar os primeiros passos na manipulação de ficheiros.
Maio 14, 2009 ás 12:30 pm
Boa tarde Prof., como posso fazer um programa em c, que calcule o numero de ocorrencias de uma palavra em um ficheiro generio de texto (.txt)?
O resultado deve ser apresentado no ecran e tambem deve ser guandado um outro ficheiro de texto de saida.
Agradecia se me podesses ajudar na resoluçao deste problema, respondendo para o meu mail:
lau_killa@hotmail.com
Maio 14, 2009 ás 2:09 pm
Olá!
Tens tudo o que necessitas no exemplo 3 deste link( http://gracianotorrao.wordpress.com/2008/10/06/manipulacao-de-ficheiros-de-texto-em-linguagem-c-exemplos-avulso/ )
No teu caso, e partindo do princípio que o caracter que separa as palavras é o espaço (versão simplista), eu faria algo do tipo:
1 – ler a palavra a procurar
2 – Inicializa a 0 o contador de ocorrências
3 – Abrir o f1cheiro de entrada em modo de leitura.
4 – Ciclo que obtém linha-a-linha o conteúdo do ficheiro de origem enquanto não atingir o EOF
4.1 – acrescentar um espaço no fim da linha
4.2 – Ciclo para encontrar espaço mais à esquerda na linha(enquanto existirem espaços na linha).
4.2.1 – Partir a linha em duas partes. A parte à esquerda do espaço é a palavra e a restante a nova linha.
4.2.2 – se a palavra retirada coincidir com a palavra procurada então incrementa-se o contador de ocorrências
5 – Fechar o ficheiro de entrada.
6 – mostrar o resultado no ecrã.
7 – Abrir o ficheiro de saída em modo de escrita
8 – Gravar o valor de ocorrências nesse ficheiro
9 – Fechar o ficheiro de saída
Este foi o 1º algoritmo que me veio à cabeça … mas naturalmente que não é o único :)
Quanto à implementação em C fico à espera … senão só te posso ajudar lá para o fim-de-semana.
Bom trabalho ;)
Maio 15, 2009 ás 7:45 pm
Agradeço pela ajuda prof.
Mas ja tentei e está mesmo dificil de fazer.
Tentei seguir o algoritimo que descreveste de 1 a 9, o meu ficheiro nem abre e da muitos erros.
Mcpts,
CD