Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina...
Transcript of Universidade do Vale do Paraíba Colégio Técnico Antônio Teixeira Fernandes Disciplina...
Universidade do Vale do ParaíbaColégio Técnico Antônio Teixeira Fernandes
Disciplina Programação Orientada a Objetos I
Material IV-BimestreCriando 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 Jesus1
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
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.
Criando uma Estrutura de registros
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
Filter Texto|*.txt (nome e extensão do arquivo)
InitialDir C:\lixo (Diretório padrão da caixa)
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 na propriedade caption
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