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 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 !!!
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
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 !!!
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
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
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
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
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
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
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
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
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
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
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 !!!
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
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
#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
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
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
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
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.
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
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 !!!
#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
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
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
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
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
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
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
Arquivos
Obrigado !!!
Prof. Thomás da Costa Programação Estruturada II

Mais conteúdo relacionado

PDF
Apostila de dev
PPTX
Algoritmos - Aula 16 B - Arquivos
PDF
Apostila linguagem c
PDF
Introdução ao LaTeX
PDF
Latex - Minicurso Básico
PDF
Curso de LaTeX
PDF
055 A 094 Material Auxiliar Para Curso AvançAdo I Msp430
PDF
Introdução ao LaTeX - Mini-Curso da XI SACSIS
Apostila de dev
Algoritmos - Aula 16 B - Arquivos
Apostila linguagem c
Introdução ao LaTeX
Latex - Minicurso Básico
Curso de LaTeX
055 A 094 Material Auxiliar Para Curso AvançAdo I Msp430
Introdução ao LaTeX - Mini-Curso da XI SACSIS

Mais procurados (19)

PDF
Mini Curso Introdutório ao Latex
PDF
[SIFSC] LaTeX para teses e dissertações
ODP
Files e File System PHP (Português)
PDF
Minicurso LaTeX
PPT
Introdução à linguagem python
PDF
Minicurso - Introdução ao LaTeX
PDF
Introducao ao LaTeX
PDF
Introdução ao Latex
PDF
Formatação de TCC com abnTeX
PDF
Apostila de Linguagem C
PDF
LaTeX Básico I
PDF
Introdução a linguagem c karen lowhany
PDF
Python Módulo Básico - Introdução a linguagem Python
PDF
Cucumber: um breve review
PDF
Aulas linux
DOC
Curso de Msdos vol2
PDF
Linguagem c
PDF
1livro latex 1_1_pdf
PDF
Aprenda a programar-luciano_ramalho
Mini Curso Introdutório ao Latex
[SIFSC] LaTeX para teses e dissertações
Files e File System PHP (Português)
Minicurso LaTeX
Introdução à linguagem python
Minicurso - Introdução ao LaTeX
Introducao ao LaTeX
Introdução ao Latex
Formatação de TCC com abnTeX
Apostila de Linguagem C
LaTeX Básico I
Introdução a linguagem c karen lowhany
Python Módulo Básico - Introdução a linguagem Python
Cucumber: um breve review
Aulas linux
Curso de Msdos vol2
Linguagem c
1livro latex 1_1_pdf
Aprenda a programar-luciano_ramalho
Anúncio

Destaque (13)

PPTX
LAB 03 - Programação Estruturada 2
DOCX
Exercícios da Aula de LAB 02
PPTX
Programação Estruturada 2 - Aula 03
PDF
Exercícios da Aula de LAB 03
PPTX
Revisão - Funções
PPTX
Programação Estruturada 2 - Aula 02
DOCX
Exercícios da Aula de LAB 01
PPTX
LAB 02 - Programação Estruturada 2
PPTX
Programação Estruturada 2 - Aula 01
PDF
Programação Estruturada 2 - Curso Completo
PPTX
LAB 01 - Programação Estruturada 2
PPTX
Programação Estruturada 2 - Aula 05
PPTX
Programação Estruturada 2 - Aula 06
LAB 03 - Programação Estruturada 2
Exercícios da Aula de LAB 02
Programação Estruturada 2 - Aula 03
Exercícios da Aula de LAB 03
Revisão - Funções
Programação Estruturada 2 - Aula 02
Exercícios da Aula de LAB 01
LAB 02 - Programação Estruturada 2
Programação Estruturada 2 - Aula 01
Programação Estruturada 2 - Curso Completo
LAB 01 - Programação Estruturada 2
Programação Estruturada 2 - Aula 05
Programação Estruturada 2 - Aula 06
Anúncio

Semelhante a Programação Estruturada 2 - Aula 04 (20)

ODP
Workshop Python.2
PDF
Estrutura de dados ii
PDF
Curso de Python (Básico) - Português
PDF
Linguagem de Programação Python
PDF
Ciência de Dados na Linha de Comando
PDF
Apostila linguagem c
PPT
Introdução a Linguagem C
DOCX
Ativ complementar etapa 02
PPTX
Aula 18 - Manipulacao De Arquivos python
PPTX
15. introducao ao c++
ODP
Shell script ii direcionadores-convertido
PDF
Introdução à Linguagem de Programação C
PPTX
Aula 11 semana
PDF
Laboratório de Programação I: Arquivos (binários) em disco
PDF
Shell Scipt - Comandos
PDF
Cherrypy - um framework para desenvolvimento rápido de aplicações web
PPT
Ficheiros texto
PPTX
Shell script ii direcionadores
PDF
Shell script do zero aula 1 - basico do basico e primeiros comandos
PPTX
Ficheiros em C
Workshop Python.2
Estrutura de dados ii
Curso de Python (Básico) - Português
Linguagem de Programação Python
Ciência de Dados na Linha de Comando
Apostila linguagem c
Introdução a Linguagem C
Ativ complementar etapa 02
Aula 18 - Manipulacao De Arquivos python
15. introducao ao c++
Shell script ii direcionadores-convertido
Introdução à Linguagem de Programação C
Aula 11 semana
Laboratório de Programação I: Arquivos (binários) em disco
Shell Scipt - Comandos
Cherrypy - um framework para desenvolvimento rápido de aplicações web
Ficheiros texto
Shell script ii direcionadores
Shell script do zero aula 1 - basico do basico e primeiros comandos
Ficheiros em C

Mais de thomasdacosta (20)

PPTX
Azure Functions e Java: Do Desenvolvimento a Produção
PPTX
Programação de Sistemas Distribuídos - Aula 03
PPTX
Programação de Sistemas Distribuídos - Aula 02
PPTX
Programação de Sistemas Distribuídos - Aula 01
PPTX
Organização de Computadores - Aula 02
PPTX
Organização de Computadores - Aula 03
PPTX
Organização de Computadores - Aula 01
PPTX
Redes de Computadores - Exercícios 06
PPTX
Redes de Computadores - Exercícios 05
PPTX
Programação Concorrente - Curso Completo
PPTX
Programação Concorrente - Aula 07
PPTX
Programação Concorrente - Aula 06
PPTX
Redes de Computadores - Exercícios 04
PPTX
Redes de Computadores - Aula 05
PPTX
Programação Concorrente - Aula 05
PPTX
Linguagem de Programação Java
PPTX
Programação Concorrente - Aula 04
PPTX
Redes de Computadores - Exercícios 03
PPTX
Redes de Computadores - Aula 04
PPTX
Algoritmos e Estrutura de Dados - Aula 05
Azure Functions e Java: Do Desenvolvimento a Produção
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 01
Organização de Computadores - Aula 02
Organização de Computadores - Aula 03
Organização de Computadores - Aula 01
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 05
Programação Concorrente - Curso Completo
Programação Concorrente - Aula 07
Programação Concorrente - Aula 06
Redes de Computadores - Exercícios 04
Redes de Computadores - Aula 05
Programação Concorrente - Aula 05
Linguagem de Programação Java
Programação Concorrente - Aula 04
Redes de Computadores - Exercícios 03
Redes de Computadores - Aula 04
Algoritmos e Estrutura de Dados - Aula 05

Último (17)

PDF
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
PDF
Processos no SAP Extended Warehouse Management, EWM100 Col26
PPTX
ccursoammaiacursoammaiacursoammaia123456
PPT
Conceitos básicos de Redes Neurais Artificiais
PPTX
Tipos de servidor em redes de computador.pptx
PDF
Processamento da remessa no SAP ERP, SCM610 Col15
PPTX
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
PDF
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
PDF
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
PDF
Banco de Dados 2atualização de Banco de d
PDF
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
PPTX
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
PDF
SEMINÁRIO DE IHC - A interface Homem-Máquina
PPT
Aula de Engenharia de Software principais caracteristicas
PPTX
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
PDF
Jira Software projetos completos com scrum
PPTX
Analise Estatica de Compiladores para criar uma nova LP
Aula 9 - Funções 202yttvrcrg5-1.pptx.pdf
Processos no SAP Extended Warehouse Management, EWM100 Col26
ccursoammaiacursoammaiacursoammaia123456
Conceitos básicos de Redes Neurais Artificiais
Tipos de servidor em redes de computador.pptx
Processamento da remessa no SAP ERP, SCM610 Col15
Aula 9 - Funções em Python (Introdução à Ciência da Computação)
Visão geral da SAP, SAP01 Col18, Introdução sistema SAP,
Customizing básico em SAP Extended Warehouse Management, EWM110 Col26
Banco de Dados 2atualização de Banco de d
eBook - GUIA DE CONSULTA RAPIDA EM ROTEADORES E SWITCHES CISCO - VOL I.pdf
3b - Bradesco Lean Agile Training Plan - Ritos Operacionais (1).pptx
SEMINÁRIO DE IHC - A interface Homem-Máquina
Aula de Engenharia de Software principais caracteristicas
Proposta de Implementação de uma Rede de Computador Cabeada.pptx
Jira Software projetos completos com scrum
Analise Estatica de Compiladores para criar uma nova LP

Programação Estruturada 2 - Aula 04

  • 1. Programação Estruturada II Aula 04 – Arquivos Prof. Thomás da Costa thomasdacosta@gmail.com Anhanguera – 2015.1
  • 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. 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. 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. 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. 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. 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. Arquivos ARQUIVOS Prof. Thomás da Costa Programação Estruturada II
  • 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. 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. 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. 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. 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. 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. 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. 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. 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. #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. 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. 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. 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. 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. 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. 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. #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. 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. 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. 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. 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. 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. 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. Arquivos Obrigado !!! Prof. Thomás da Costa Programação Estruturada II