Usuário diz: Show, e o que são arquivos??
Diego diz: Bom, de modo superficial, um arquivo nada mais é que um ficheiro responsável por guardar alguma informação, seja ela um texto, uma coleção numérica, emails, agenda telefônica, enfim... Se pode encontrar muitas aplicações para o uso de arquivos.
Usuário diz: Hmm saquei, eu mesmo utilizo arquivos para guardar o nome das minas que eu pego heheheheh
Diego diz: ¬¬
Diego diz: Hoje mostrarei como manipular arquivos em algumas linguagens de programação, mas antes mostrarei alguns conceitos básicos para o entendimento de como um arquivo pode ser manipulado, beleza?
Usuário diz: Belezura!
Diego diz: Antes, precisamos entender o seguinte, todo computador é composto por uma memória RAM e um disco rígido, a memória RAM ou memória de acesso randômico assim como um disco rígido, guardam informações em blocos de memória que são sequências de bytes, onde cada byte armazena 256 valores possíveis. A diferença é que a memória RAM é uma memória VOLÁTIL ou seja, todo seu conteúdo é perdido quando não houver mais alimentação no sistema, ou no nosso caso quando o nosso programa for fechado todo conteúdo salvo na memória RAM será apagado.
Usuário diz: O que geralmente é salvo na memória RAM?
Diego diz: As variáveis que utilizamos, as funções que chamamos para executar algum procedimento, ou qualquer outro mecanismo que é utilizado apenas em tempo de execução no nosso programa ficará salvo na memória RAM.
Usuário diz: Puts, mas e se eu quiser manter um dado salvo? Ou ter um repositório?
Diego diz: Ai é necessário que utilize uma memória NÃO-VOLÁTIL como fonte de armazenamento de dados, por exemplo, o disco rígido. Arquivos, em sua maioria são ficheiros que ficam armazenados no nosso disco rígido, podendo esse ser acessado posteriormente, mesmo que o programa tenha sido fechado.
Usuário diz: Huum que maneiro! E como implementamos?
Diego diz: A pedido de um grande amigo meu, (Arthur Soares vulgo "Tutu"), irei implementar um programa que faça manipulações de arquivos encima da linguagem C/C++.
Usuário diz: Belezaa! Um abraço pra ele! E vamos ao o que interessa! \m/
Diego diz: Depois de criado o seu projeto C++, inclua a referência para a lib "STDIO.H" pois é esse cara que nos oferece recursos para manipularmos arquivos.
Agora mostrarei passo a passo o processo de manipulação:
1 - Criar/Abrir um arquivo:
Para que possamos trabalhar (ler/escrever) com arquivos é necessário que esse arquivo exista na memória e seja aberto, então é feito o seguinte:
Note que para abrirmos um arquivo utilizamos a função "fopen" essa função espera dois parâmetros, que são:
primeiro: Nome do seu arquivo, você pode escolher o diretório onde deseja salva-lo passando junto ao nome o endereço. Nesse caso, criei o arquivo chamado "MeuArquivo.txt" ná Área de Trabalho.
segundo: Modo de operação. Esse parâmetro é responsável por dizer qual operação será executada nesse arquivo, repare na tabela abaixo:
MODO
|
OPERAÇÃO
|
r
|
Abre um arquivo texto
para leitura.
|
w
|
Abre um arquivo texto
para escrita. Se um arquivo com o mesmo nome existir, será sobrescrito.
|
a
|
Abre um arquivo texto
para anexação. Se o arquivo não existir, será criado.
|
rb
|
Abre um arquivo
binário para leitura.
|
wb
|
Abre um arquivo
binário para escrita. Se um arquivo com o mesmo nome existir, será
sobrescrito.
|
ab
|
Abre um arquivo
binário para anexação. Se o arquivo não existir, será criado.
|
r+
w+ a+ |
Abre um arquivo texto
para leitura/escrita. Se o arquivo não existir, será criado.
|
r+b
w+b a+b rb+ wb+ ab+ |
Abre um arquivo
binário para leitura/escrita. Se o arquivo não existir, será criado.
|
Como vocês conseguem ver, eu utilizei o modo "r" onde diz que a operação feita no arquivo será para leitura e é necessário que o arquivo JÁ EXISTA para que essa operação funcione. E como boas práticas de programação, é sempre bom você ter certeza que nenhum erro ocorreu na criação do seu arquivo, para isso criei uma condição para validar a criação do meu arquivo.
Outro detalhe importante é, sempre que você fizer qualquer trabalho com um arquivo, ao final dessa manipulação SEMPRE feche-o. Por exemplo, se você tem um arquivo e quer ler as informações dele, a ordem seria essa:
1 - Abrir o arquivo
Outro detalhe importante é, sempre que você fizer qualquer trabalho com um arquivo, ao final dessa manipulação SEMPRE feche-o. Por exemplo, se você tem um arquivo e quer ler as informações dele, a ordem seria essa:
1 - Abrir o arquivo
2 - Ler o arquivo
3 - Fechar o arquivo
As instruções 1 e 3 não mudam, sempre você terá que abrir e fechar seu arquivo, o que é variante é a segunda instrução, que pode ser leitura, escrita, leitura de binários e escrita de binários.
Então para fecharmo um arquivo, é utilizada a seguinte sintaxe:
Então para fecharmo um arquivo, é utilizada a seguinte sintaxe:
Primeiro estou verificando se o arquivo esta realmente aberto com a comparação "arquivo != NULL"
se essa condição for verdadeira, a função "fclose" fecha o arquivo que eu passar por parâmetro para ela.Usuário diz: Nossa que legal cara!
Diego diz: E num é?! Então agora vamos ao o que interessa de verdade. Criarei algumas funções básicas, como por exemplo:
* função que escreva um texto no arquivo.
* função para ler o conteúdo do arquivo
* função para editar o conteúdo.
* função para buscar algum valor dentro do arquivo* função para apagar o arquivo
Primeira função que implementaremos juntos será a de escrita de um texto ou valor em um arquivo. O nome da função será "escreveNoArquivo". Veja o código:
Linguagem C:
Feito isso eu abro o arquivo passando o nome absoluto do arquivo no sistema, e o modo de operação.
Depois de aberto o arquivo, eu utilizo a função "fputs" passando dois parâmetros, o texto e o arquivo. Essa função, é responsável por inserir uma string ou um conjunto de carácter no arquivo, como o modo de operação que escolhi foi "w" então o arquivo sera sempre sobrescrito, para que o texto seja concatenado é necessário usar o modo 'a' (anexação). E assim que eu termino de inserir o texto no arquivo eu chamo a função "fclose" responsável por fechar o arquivo.
2 - Ler conteúdo de Arquivos
Função "lerConteudoArquivo" recebe um parâmetro do tipo FILE, o principal método utilizado dentro dessa função é o "fgets".
Linguagem C:
Repare que a função "fgets" pede 3 parâmetros, o primeiro um conjunto de carácter, que será utilizado como buffer para guardar o conteúdo coletado no arquivo. O segundo parâmetro é o numero de caracteres que você irá ler no arquivo, nesse caso eu pego o tamanho do nosso buffer e passo como sendo N. E o terceiro e ultimo parâmetro é o arquivo em que você deseja realizar a coleta de dados.




Nenhum comentário:
Postar um comentário