Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Programação Estruturada II
Aula 04 – Arquivos
Prof. Thomás da Costa
thomasdacosta@gmail.com
Anhanguera – 2015.1
PEA - Programação Estruturada II
Vamos ver o PEA:
Antes de iniciar a aula, vamos mostrar o andamento do PEA. Vou mostrar a...
Status Matéria
Apresentação da disciplina. Revisão de aspectos básicos da linguagem C.
Depuração e documentação interna de...
PEA - Programação Estruturada II
Prof. Thomás da Costa Programação Estruturada II
Vamos ver as próximas aulas
até o fim do...
Status Matéria
Introdução a arquivos de dados. Conceito de campos e registros. Criação de registros e criação de
arquivos....
Avaliação – B2
Avaliação – B2
- Período das avaliações B2: 15 até 19 de Junho
- Data da Avaliação B2: 15 de junho (SIS) e ...
ATPS – B2
ATPS – B2
- Data de Entrega B2: 08 de junho (SIS) e 09 de junho (TADS)
- O prazo para entrega é até as 20h50 do ...
Arquivos
ARQUIVOS
Prof. Thomás da Costa Programação Estruturada II
Arquivos
Bem conhecido no nosso dia-a-dia:
Todos os dias no nosso trabalho ou em casa utilizamos arquivos para armazenar
i...
Arquivos
Tipos de Arquivos:
Texto: armazena somente texto e caracteres. Normalmente possuem extensão txt
Binário: arquivos...
Arquivos
Criando arquivos textos em C++:
Arquivos
Prof. Thomás da Costa Programação Estruturada II
#include <fstream>
...
...
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespa...
Arquivos
Lendo arquivos textos em C++:
Arquivos
Prof. Thomás da Costa Programação Estruturada II
#include <fstream>
...
if...
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespa...
Arquivos
Lembrete:
Sempre que um arquivo for aberto para leitura ou escrita, o mesmo deve ser
fechado, para que possa ser ...
Arquivos
Novos tipos e comandos:
string: novo tipo de variável, semelhante a um vetor de char
getline: efetua a leitura de...
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespa...
#include <iostream>
#include <fstream>
#include <strings.h>
using namespace std;
void ler_arquivo();
int main()
{
ler_arqu...
Arquivos
Formas de abertura de um arquivo:
Quando trabalhamos com arquivos, existem várias formas de leitura e escrita.
Po...
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespa...
Arquivos
Lendo um arquivo com várias linhas:
Normalmente um arquivo texto possui várias linhas de caracteres. Quando
desen...
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespa...
Prof. Thomás da Costa Programação Estruturada II
#include <iostream>
#include <fstream>
#include <strings.h>
using namespa...
Arquivos
Gravando estruturas em arquivo:
Até agora vimos como gravar informações no formato texto.
Neste ponto da matéria,...
#include <fstream>
...
fstream fst;
fst.open("registros.dat",
ios::in | ios::out | ios::app | ios::binary);
Arquivos
Escre...
fst.write((char *)&alu, sizeof(alu));
Arquivos
Gravando uma estrutura em um arquivo:
Arquivos
Prof. Thomás da Costa Progra...
Prof. Thomás da Costa Programação Estruturada II
Exemplo 8
#include <iostream>
#include <fstream>
#include <strings.h>
#in...
fst.read((char *)&alu,sizeof(alu))
Arquivos
Lendo uma estrutura em um arquivo:
Arquivos
Prof. Thomás da Costa Programação ...
Prof. Thomás da Costa Programação Estruturada II
Exemplo 9
#include <iostream>
#include <fstream>
#include <strings.h>
#in...
Arquivos
Resumo:
- Existem dois formatos de arquivos: texto e binário
- Utilizamos o tipo ofstream para escrita em um arqu...
Arquivos
Próxima Aula:
- LABORATÓRIO !!!
- Vamos praticar os conhecimentos dessa aula
- O exercícios vão manter o mesmo pa...
Arquivos
Obrigado !!!
Prof. Thomás da Costa Programação Estruturada II
Upcoming SlideShare
Loading in …5
×

Programação Estruturada 2 - Aula 04

Aula 04 - Arquivos

  • Be the first to comment

Programação Estruturada 2 - Aula 04

  1. 1. Programação Estruturada II Aula 04 – Arquivos Prof. Thomás da Costa thomasdacosta@gmail.com Anhanguera – 2015.1
  2. 2. PEA - Programação Estruturada II Vamos ver o PEA: Antes de iniciar a aula, vamos mostrar o andamento do PEA. Vou mostrar as aulas lecionadas e vamos ver as próximas lições até o fim do curso. PEA - Programação Estruturada II Prof. Thomás da Costa Programação Estruturada II Vamos ver o que aprendemos até agora !!!
  3. 3. Status Matéria Apresentação da disciplina. Revisão de aspectos básicos da linguagem C. Depuração e documentação interna de programas. Conceituação de modularização. Utilização de Funções. Passagem de parâmetros por valor. Utilização de Funções. Passagem de parâmetros por referência. Exemplos e exercícios. Definição de tipos. Tipos definidos pelo programador. Utilização do tipo struct. Conceituação, principais utilizações, exemplos e exercícios. Abordagem dos tipos union e enum. Conceituação, principais utilizações, exemplos e exercícios. Revisão Atividades de Avaliação. PEA - Programação Estruturada II Prof. Thomás da Costa Programação Estruturada II
  4. 4. PEA - Programação Estruturada II Prof. Thomás da Costa Programação Estruturada II Vamos ver as próximas aulas até o fim do curso !!!
  5. 5. Status Matéria Introdução a arquivos de dados. Conceito de campos e registros. Criação de registros e criação de arquivos. Operações com arquivos: inclusão de registro, consulta a registros. Fechamento de arquivos. Exemplos e exercícios. Operações com arquivos: exclusão de registros, alterações de registros. Exercícios em sala. Exercícios com arquivos. Conceito de recursividade. Aplicações. Exemplos de programas recursivos. Recursão: exercícios. Introdução a ponteiros e suas aplicações. Exemplos e exercícios em sala. Tipos de ponteiros. Utilização de operadores aritméticos e de comparação em ponteiros. Exercícios. Introdução a Ponteiros avançados e operadores bit-a-bit Ponteiros avançados e operadores bit-a-bit. Exemplos e exercícios. Revisão Prova Escrita Oficial Prova Substitutiva PEA - Programação Estruturada II Prof. Thomás da Costa Programação Estruturada II
  6. 6. Avaliação – B2 Avaliação – B2 - Período das avaliações B2: 15 até 19 de Junho - Data da Avaliação B2: 15 de junho (SIS) e 16 de junho (TADS) - Obrigatoriamente, avaliação da B2 é PROVA - PROVA SUBSTITUTIVA SUBSTITUI A NOTA DA B2, NÃO SUBSTITUI A MENOR NOTA DAS PROVAS OU A B1 - Matéria da Prova é todo o conteúdo do semestre - Será disponibilizado uma lista com 20 exercícios para estudar Prof. Thomás da Costa Programação Estruturada II
  7. 7. ATPS – B2 ATPS – B2 - Data de Entrega B2: 08 de junho (SIS) e 09 de junho (TADS) - O prazo para entrega é até as 20h50 do dia 08 (SIS) e 09 (TADS) - Fora desse horário não será aceito - Grupo no máximo de 5 pessoas - Efetuar a entrega da ETAPA 3 e ETAPA 4 - Fazer os exercícios em C++. Se for feito em C será considerado ERRADO - Façam a REVISÃO do trabalho antes de imprimir e entregar - Seguir a Normalização de Trabalhos Acadêmicos : http://www.anhanguera.com/bibliotecas/biblioteca-virtual/pagina/normalizacao Prof. Thomás da Costa Programação Estruturada II
  8. 8. Arquivos ARQUIVOS Prof. Thomás da Costa Programação Estruturada II
  9. 9. Arquivos Bem conhecido no nosso dia-a-dia: Todos os dias no nosso trabalho ou em casa utilizamos arquivos para armazenar informações tais como: imagem, texto, trabalho de faculdade, relatórios, planilhas de gastos e etc. Até esse ponto do curso, todas as informações eram armazenadas na memória, ou seja, quando um programa terminava não existia nenhum processo de armazenamento de dados. Vamos aprender a armazenar informações em arquivos textos ou de dados !!! Arquivos Prof. Thomás da Costa Programação Estruturada II
  10. 10. Arquivos Tipos de Arquivos: Texto: armazena somente texto e caracteres. Normalmente possuem extensão txt Binário: arquivos que podem armazenar textos, imagens, planilhas e outros tipos de informações. Algumas extensões conhecidas: pdf, doc, xls, gif Arquivos Prof. Thomás da Costa Programação Estruturada II
  11. 11. Arquivos Criando arquivos textos em C++: Arquivos Prof. Thomás da Costa Programação Estruturada II #include <fstream> ... ofstream ofs; ofs.open("ola_mundo.txt", ios::out); Include da biblioteca de arquivos Variável do arquivo Nome do arquivo Formato de abertura do arquivo
  12. 12. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void gravar_arquivo(); int main() { gravar_arquivo(); } void gravar_arquivo() { string valor; valor = "Ola Mundo"; ofstream ofs; ofs.open("ola_mundo.txt", ios::out); ofs << valor; ofs.close(); } Exemplo 1 Grava um texto no arquivo O tipo string é semelhante a um vetor de char, ou seja, armazena um conjunto de caracteres
  13. 13. Arquivos Lendo arquivos textos em C++: Arquivos Prof. Thomás da Costa Programação Estruturada II #include <fstream> ... ifstream ifs; ifs.open("ola_mundo.txt", ios::in); Include da biblioteca de arquivos Variável do arquivo Nome do arquivo Formato de abertura do arquivo
  14. 14. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void ler_arquivo(); int main() { ler_arquivo(); } void ler_arquivo() { string valor; ifstream ifs; ifs.open("ola_mundo.txt", ios::in); if (!ifs.is_open()) { cout << "Não foi possivel abrir o arquivo" << endl; return; } getline(ifs, valor); cout << "Conteúdo do Arquivo:" << valor << endl; ifs.close(); } Exemplo 2 Efetua a leitura de uma linha no arquivo
  15. 15. Arquivos Lembrete: Sempre que um arquivo for aberto para leitura ou escrita, o mesmo deve ser fechado, para que possa ser utilizado por outros programas e não ocupar recursos do sistema operacional. Arquivos Prof. Thomás da Costa Programação Estruturada II Utilizar o comando close() dos objetos ofstream e ifstream !!!
  16. 16. Arquivos Novos tipos e comandos: string: novo tipo de variável, semelhante a um vetor de char getline: efetua a leitura de uma linha de um arquivo is_open: verifica se o arquivo foi aberto ou criado corretamente no disco. Exemplo de problemas: falta de espaço em disco, diretório não existente e etc Arquivos Prof. Thomás da Costa Programação Estruturada II
  17. 17. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void gravar_arquivo(); int main() { gravar_arquivo(); } void gravar_arquivo() { int valor_1; double valor_2; float valor_3; char valor_4; cin >> valor_1; cin >> valor_2; cin >> valor_3; cin >> valor_4; ofstream ofs; ofs.open("numeros.txt", ios::out); ofs << valor_1 << endl; ofs << valor_2 << endl; ofs << valor_3 << endl; ofs << valor_4 << endl; ofs.close(); } Exemplo 3 Lendo valores a partir do teclado Gravando os valores sequencialmente
  18. 18. #include <iostream> #include <fstream> #include <strings.h> using namespace std; void ler_arquivo(); int main() { ler_arquivo(); } Prof. Thomás da Costa Programação Estruturada II void ler_arquivo() { int valor_1; double valor_2; float valor_3; char valor_4; ifstream ifs; ifs.open("numeros.txt", ios::in); if (!ifs.is_open()) { cout << "Não foi possivel abrir o arquivo" << endl; return; } ifs >> valor_1; ifs >> valor_2; ifs >> valor_3; ifs >> valor_4; cout << "Valores do arquivo:" << valor_1 << "," << valor_2 << "," << valor_3 << "," << valor_4; ifs.close(); } Exemplo 4 Lendo os valores sequencialmente
  19. 19. Arquivos Formas de abertura de um arquivo: Quando trabalhamos com arquivos, existem várias formas de leitura e escrita. Podemos abrir o arquivo somente para leitura, escrita, escrita/leitura e etc. Para escolher a forma de trabalhar com o arquivo, passamos parâmetros na função open do ofstream ou do ifstream conforme a tabela abaixo: Arquivos Prof. Thomás da Costa Programação Estruturada II Parâmetro Descrição ios::in Efetua operação de leitura de arquivo (Sempre usar no ifstream) ios::out Efetua operação de escrita de arquivo (Sempre usar no ofstream) ios::binary Cria um arquivo binário ios::app Insere valores no fim do arquivo ios::trunc Apaga o conteúdo do arquivo e substitui por um novo
  20. 20. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void gravar_fim_arquivo(); int main() { gravar_fim_arquivo(); } void gravar_fim_arquivo() { string valor; valor = "Nova linha no arquivo"; ofstream ofs; ofs.open("arquivo_linhas.txt", ios::out | ios::app); ofs << valor << endl; ofs.close(); } Exemplo 5 Abre o arquivo para escrita e insere valores no final do arquivo
  21. 21. Arquivos Lendo um arquivo com várias linhas: Normalmente um arquivo texto possui várias linhas de caracteres. Quando desenvolvemos um programa para ler um arquivo, não temos ideia do seu tamanho. Para efetuarmos a leitura do arquivo até o seu fim, utilizamos o comando getline dentro de uma instrução while. Arquivos Prof. Thomás da Costa Programação Estruturada II O comando getline busca sempre o fim de linha
  22. 22. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void gravar_arquivo(); int main() { gravar_arquivo(); } void gravar_arquivo() { string valor; ofstream ofs; ofs.open("arquivo_linhas.txt", ios::out); valor = "O que são funções:"; ofs << valor << endl; valor = "São rotinas que tem como objetivo, " "executar trechos de códigos de forma modular, " "melhorando a organização do programa e evitando repetição de código."; ofs << valor << endl; valor = "As funções são reutilizáveis dentro de um programa."; ofs << valor << endl; ofs.close(); } Exemplo 6 Criando um arquivo com várias linhas. No nosso caso, 3 linhas.
  23. 23. Prof. Thomás da Costa Programação Estruturada II #include <iostream> #include <fstream> #include <strings.h> using namespace std; void ler_arquivo(); int main() { ler_arquivo(); } void ler_arquivo() { string linha; ifstream ifs; ifs.open("arquivo_linhas.txt", ios::in); if (!ifs.is_open()) { cout << "Não foi possivel abrir o arquivo" << endl; return; } while (getline(ifs, linha)) { cout << linha << endl; } ifs.close(); } Exemplo 7 Utilizando getline para efetuar a leitura de uma linha. Enquanto existir linha no arquivo, a leitura será efetuada
  24. 24. Arquivos Gravando estruturas em arquivo: Até agora vimos como gravar informações no formato texto. Neste ponto da matéria, iremos aprender a gravar um estrutura dentro de um arquivo. A estrutura é gravado em um arquivo no formato binário Para isso vamos aprender uma nova forma de trabalhar com arquivo. Essa nova forma, podemos gravar e ler informações utilizando apenas um tipo de variável, sem precisar usar o ofstream e o ifstream Arquivos Prof. Thomás da Costa Programação Estruturada II Vamos ver a nova forma de gravação em arquivos !!!
  25. 25. #include <fstream> ... fstream fst; fst.open("registros.dat", ios::in | ios::out | ios::app | ios::binary); Arquivos Escrevendo/Lendo arquivos textos e binários em C++: Arquivos Prof. Thomás da Costa Programação Estruturada II Include da biblioteca de arquivos Variável do arquivo Nome do arquivo Formato de abertura do arquivo
  26. 26. fst.write((char *)&alu, sizeof(alu)); Arquivos Gravando uma estrutura em um arquivo: Arquivos Prof. Thomás da Costa Programação Estruturada II Comando para gravação “Cast” da estrutura para char Tamanho da estrutura que será gravada
  27. 27. Prof. Thomás da Costa Programação Estruturada II Exemplo 8 #include <iostream> #include <fstream> #include <strings.h> #include <limits> using namespace std; struct alunos { long id; char nome[255]; char ra[30]; int idade; }; void gravar_arquivo_registros(); int main() { gravar_arquivo_registros(); } void gravar_arquivo_registros() { alunos alu; cout << "Digite o nome do aluno:"; gets(alu.nome); cout << "Digite o RA do aluno:"; gets(alu.ra); cout << "Digite a idade do aluno:"; cin >> alu.idade; fstream fst; fst.open("registros.dat", ios::in | ios::out | ios::app | ios::binary); if (!fst.is_open()) { cout << "Não foi possivel abrir o arquivo" << endl; return; } fst.write((char *)&alu, sizeof(alu)); fst.close(); } Gravando uma estrutura no arquivo
  28. 28. fst.read((char *)&alu,sizeof(alu)) Arquivos Lendo uma estrutura em um arquivo: Arquivos Prof. Thomás da Costa Programação Estruturada II Comando para leitura “Cast” da estrutura para char Tamanho da estrutura que será lida
  29. 29. Prof. Thomás da Costa Programação Estruturada II Exemplo 9 #include <iostream> #include <fstream> #include <strings.h> #include <limits> using namespace std; struct alunos { long id; char nome[255]; char ra[30]; int idade; }; void ler_arquivo_registros(); int main() { ler_arquivo_registros(); } void ler_arquivo_registros() { alunos alu; fstream fst; fst.open("registros.dat", ios::in | ios::out | ios::app | ios::binary); if (!fst.is_open()) { cout << "Não foi possivel abrir o arquivo"; return; } while (fst.read((char *)&alu,sizeof(alu))) { cout << "************************" << endl; cout << "Nome:" << alu.nome << endl; cout << "RA:" << alu.ra << endl; cout << "Idade:" << alu.idade << endl; } fst.close(); } Lendo uma estrutura do arquivo
  30. 30. Arquivos Resumo: - Existem dois formatos de arquivos: texto e binário - Utilizamos o tipo ofstream para escrita em um arquivo - Utilizamos o tipo ifstream para leitura em um arquivo - Podemos gravar uma estrutura em um arquivo - O tipo fstream é utilizado para escrita e leitura de arquivos - Devemos sempre fechar o arquivo com o close do tipo específico do arquivo - O tipo string é semelhante a um vetor de char - O comando getline efetua a leitura de uma linha em um arquivo texto - O is_open tem como finalidade, indicar se o arquivo foi aberto ou criado corretamente - Para efetuar a leitura de um arquivo com várias linhas utilizamos o getline dentro de laço até o final do arquivo Arquivos Prof. Thomás da Costa Programação Estruturada II
  31. 31. Arquivos Próxima Aula: - LABORATÓRIO !!! - Vamos praticar os conhecimentos dessa aula - O exercícios vão manter o mesmo padrão: básico, normal e avançado - Iremos aprender matéria nova sobre arquivos no laboratório Arquivos Prof. Thomás da Costa Programação Estruturada II
  32. 32. Arquivos Obrigado !!! Prof. Thomás da Costa Programação Estruturada II

×