universidade do vale do paraíba colégio técnico antônio teixeira fernandes disciplina...
TRANSCRIPT
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