Universidade do Vale do Paraíba
Colégio Técnico Antônio Teixeira Fernandes
Disciplina Programação Orientada a Objetos I
Material IV-Bimestre
Criando um arquivo de dados.
Abrindo e fechando um arquivo de dados.
Processando um arquivo de dados.
Processo de leitura, Escrita e Inserção em
Arquivo, Menus e Dialogos
site : http://www1.univap.br/~wagner
Prof. Responsáveis
Wagner Santos C. de Jesus
1
Arquivo de Dados
Muitas informações precisam ler e escrever
informações de um dispositivo de memória
auxiliar.
Essas
informações
são
armazenadas no dispositivo na forma de um
arquivo de dados. Os arquivos de dados nos
permitem
armazenar
informações
permanentemente e acessar e alterar essas
informações sempre que necessário.
2
Usando Streams.
A manipulação de arquivo em C normalmente é feita
por intermédio de um recurso do sistema operacional
denominado Stream (que vem a ser cadeia de
caracteres ou bytes).
Normalmente em C manipulamos arquivos de texto que
são arquivo não formatados ou seja esse tipo de
manipulação deve ser feita inteiramente por intermédio
do programador que desenvolve a aplicação
procedimento que da origem ao que chamamos de
estrutura de banco de dados que são complexas e
demando
conhecimentos
matemáticos
de
relacionamento intercessão.
3
Criando um arquivo de dados do tipo texto.
Para se trabalhar com um arquivo de dados
do tipo texto, o primeiro passo é estabelecer
um buffer, onde as informações são
armazenadas temporariamente durante a
transferencia entre memória e computador
(Dispositivo de gravação).
4
5
Criando um Buffer. (FILE)
• Para se criar um buffer é necessário usar o
comando FILE que é um tipo de estrutura
especial que estabelece o buffer. Para dar
nome ao buffer colocamos uma variável do
tipo ponteiro.
6
Para usar FILE é necessário
utilizar a biblioteca.
#include <stdio.h>
Sintaxe para criação de um Buffer.
FILE *<nome_Buffer>;
Exemplo :
FILE *pt;
7
Abrindo e criando um arquivo
- fopen()
• fopen() : Para se manipular um arquivo é
preciso cria-lo para poder usar o recurso de
leitura, e gravação. A função fopen retorna
um ponteiro para o início do buffer
associado ao arquivo. Um valor NULL é
retornado quando o arquivo de dados não
puder ser encontrado.
8
Sintaxe : <buffer> = fopen(<nome-arquivo>, <tipo-abertura>);
9
Exemplo :
pt = fopen("c:/diretorio/teste.txt","r+");
Obs :
Este exemplo abre um arquivo já existente
para leitura e gravação.
10
Escrevendo dados em um Arquivo fprintf()
Para gravar uma informação em um arquivo
usamos a função fprintf(), que permite escrever
um dado no buffer.
Sintaxe:
fprintf(<buffer>,<cadeia_Caracteres);
Obs : A cadeia de ser sempre do tipo char.
11
Exemplo :
fprintf(pt,"Gravando Arquivo");
12
Fechando um arquivo de dados
- fclose()
Para se fechar um arquivo usamos a função fclose(), que
permite remover todos os dados do buffer para o disco.
Sintaxe :
fclose(<nome_buffer>);
Exemplo :
fclose(pt);
13
Exemplo de um programa para escrever
um dado no arquivo.
FILE *fp;
fp = fopen("c:/ProjC++/teste.txt","r+");
fprintf(fp,"Corinthians do Rivelino..\n");
fclose(fp);
14
Leitura de um arquivo de dados fgets(), feof().
Permite realizar a leitura de um ou mais registros em arquivo
cada vez que fgets() é acionado desloca o ponteiro para o
próximo registro até encontrar o final do arquivo. Que é
indicado pela função feof(), que retorna verdadeiro caso o
final do arquivo seja encontrado.
Sintaxe :
fgets(<varm_receptora>,<tamanho>,<Buffer>);
feof(<ponteiro>);
15
Exemplo :
char v[30];
fp = fopen(arq,"r+");
while(!feof(fp)) {
fgets(v,30,fp);
ShowMessage(v);
}
fclose(fp);
16
Verificando se um arquivo
existe ou não - FileExists().
FileExists() - Retorna um operador booleano
se o arquivo existir no diretório específicado.
Sintaxe :
<Varm-Boolean> = FileExists(<Caminho_nome_Arquivo>);
Exemplo :
boolean t = FileExists("c:/Projeto/lista.txt");
17
Criando uma Estrutura de registros
Uma estrutura vem a ser um tipo especial de
dados que permite agrupar tipo de
diferentes de dados em um só ambiente com
se o conjunto fosse apenas um.
18
Implementado a criação de uma estrutura
de registros - struct
struct - cria uma estrutura de registros para um determinado
grupo de dados.
Obs: A estrutura deve ser declarada no programa de forma
global.
Sintaxe :
struct <nome_logico> {
<definição das campos_Variáveis>;
} <nome_físico>;
19
Exemplo :
struct dados {
int n;
AnsiString nome;
double salario;
}entrada;
20
Usando uma estrutura de
registros.
void __fastcall TForm1::Button1Click(TObject
*Sender)
{
entrada.nome = "Maria da Silva";
entrada.salario = 3000.90;
ShowMessage(entrada.salario);
}
21
Uma estrutura de registro pode ser associada a um
arquivo formando assim um banco de dados.
Exemplo de arquivo com estrutura de
registros.
struct dados {
char nome[30];
char salario[12];
}entrada;
22
Exemplo Gravação de uma estrutura em um arquivo
de texto.
void __fastcall TForm1::Button1Click(TObject *Sender)
{
FILE *fp;
fp = fopen("c:/ProjC++/teste.txt","w+");
StrCopy(entrada.nome,"Maria da Silva,");
StrCopy(entrada.salario,"3000.90\n");
fprintf(fp,entrada.nome);
fprintf(fp,entrada.salario);
fclose(fp);
}
23
Mudando o nome do Arquivo.
RenameFile() : Troca o nome do arquivo determinado em um diretório.
Sintaxe :
RenameFile(<Arquivo_Antigo>,<Arquivo_Novo>);
Exemplo :
RenameFile("c:/Projeto/teste.txt","c:/Projeto/testando.txt");
24
DeleteFile() : Apaga um arquivo de um determinado
diretório.
Sintxe :
RenameFile(<Nome_Arquivo>);
Exemplo :
DeleteFile("c:/Projeto/logica.txt");
25
system() : Executa um comando do sistema
operacional.
Sintaxe :
system(<String do sistema>);
Exemplo :
system("sol.exe");
26
Permite a criação de uma região para digitação de texto.
Memo deve ser usado com a propriedade Lines.
Para adicionar um texto ao memo usamos método add().
Exemplo :
Memo1->Lines->Add("Teste");
27
Para contar o número de linhas de um texto usamos
método count.
Exemplo :
int x = Memo1->Lines->Count;
Para obter o uma linha de um texto usa-se o método.
Strings[].
Exemplo :
int i = 1;
AnsiString p = Memo1->Lines->Strings[i];
28
Para Gravar os dados de um determinado texto.
SaveToFile().
Exemplo :
Memo1->Lines->SaveToFile("teste.txt");
29
Para Carregar os dados de um determinado
texto. LoadFormFile().
Sintaxe:
Memo1->Lines->LoadFromFile("teste.txt");
30
SaveDialog e OpenDialog
Paleta Dialog, permite criar uma janela onde o
usuário poderã escolher um arquivo para abertura ou
gravação.
Propriedades
Valores
Default
*.txt (extensão)
Filename
Caminho e nome do
arquivo
Texto|*.txt (nome e
extensão do arquivo)
C:\lixo (Diretório padrão
da caixa)
Filter
InitialDir
31
Método Execute()
Executa a caixa de dialogo onde o arquivo
escolhido será enviado para a propriedade
FileName.
Exemplo :
SaveDialog1->Execute();
32
Saída da caixa SaveDialog
33
FileName : Permite exibir o caminho e o nome do
arquivo que foi escolhido.
AnsiString cam = SaveDialog1->FileName;
No exemplo acima o caminho armazenado na
variável cam será c:\lixo\cripotografia.txt
34
MainMenu : Determina um menu de
opções. (Basta digitar duplo click no
objeto)
Escrever
opções
propriedade caption
na
Para criar um submenu
basta clicar na linha de
baixo e escrever na
propriedade caption.
35
Resultado na Execução do Menu
36
O código deverá ser colocado no evento OnClick do
objeto MainMenu1
void __fastcall TForm1::Novo1Click(TObject *Sender)
{
ShowMessage(“Click na opção Novo”);
}
37
Download

4-Bim Arquivo de Dados.