Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

Documentos relacionados
USP - ICMC - SSC SSC o. Semestre Disciplina de Linguagem de Programação e Aplicações [ Eng. Elétrica / Automação ]

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos

Computação 2. Aula 8. Profª. Fabiany Arquivos

Aula 16: Manipulação de Arquivos em C

PIP/CA - Programa Interdisciplinar de Pós-Graduação em Computação Aplicada da UNISINOS ALGORITMOS & ESTRUTURAS DE DADOS

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

Outline. 33. Manipulação de arquivos DIM

Existe uma quantidade de informação que pode ser armazenada para resolver o problema.

Arquivos em C. Material da Prof. Ana Eliza

C Arquivos. Adriano Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

9. Arquivos em C. Prof. Renato Tinós. Departamento de Computação e Matemática (FFCLRP/USP) Introdução à Computação II

LINGUAGEM C: ARQUIVOS

Aula 26 - Arquivos. Prof. Laura Silva de Assis. Engenharia da Computação. CEFET/RJ - Centro Federal de Educação Tecnológica Celso Suckow da Fonseca

Aula: ARQUIVOS. Introdução à Ciência da Computação I Simone Senger Souza. ICMC/USP São Carlos

Computação 2. Aula 9. Diego Addan Arquivos

LINGUAGEM C: ARQUIVOS

SSC INTRODUÇÃO À COMPUTAÇÃO PARA ENGENHARIA AMBIENTAL REGISTROS E ARQUIVOS. Profa. Dra. Milena Guessi Margarido

Computação Eletrônica. Aula 12 Arquivos Texto e Binário. Prof: Luciano Barbosa. CIn.ufpe.br

Programação para Computação 13ª Aula

Aula 26: Arquivos de texto

Computadores Digitais 2. Prof. Rodrigo de Souza Couto

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Manipulação de arquivos

Aula 14 Oficina de Programação Tópicos Especiais em C: Arquivos. Profa. Elaine Faria UFU

13a. Aula Manipulação de arquivos

SSC304 Introdução à Programação Para Engenharias. Arquivos. GE4 Bio

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

1/24 FICHEIROS DE TEXTO

Métodos Computacionais. Arquivos

CAP. IX - MANIPULAÇÃO DE ARQUIVOS Generalidades sobre Arquivos. 9.2 Abertura e Fechamento de Arquivos. Operações com arquivos:

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Introdução à Computação II AULA 08 BCC Noturno - EMA896115B

Arquivos. Programação de Computadores I. Natália Batista.

Fundamentos de Programação 1

Linguagem de Programação C. Arquivos Binários

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Laboratório de Introdução à Ciência da Computação I

Programação de Computadores

Sumário. Ficheiros. Ficheiros

Leitura de Arquivos. Prof. Fabrício Olivetti de França

Faculdade de Computação

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Programação de Computadores II

Arquivos em C Parte 2

Estruturas de Dados. Módulo 15 - Arquivos. 2/6/2005 (c) Dept. Informática - PUC-Rio 1

TÉCNICAS DE PROGRAMAÇÃO

E/S em Arquivo. Para ler ou escrever arquivos é preciso usar ponteiros de arquivo. Um ponteiro de arquivo é uma variável ponteiro do tipo FILE:

Programação II. Arquivos - Conceito. Arquivos

Linguagem C. Armazenamento de Dados em Arquivos - Continuação

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Introdução a Programação. Manipulando Arquivos em Modo Texto

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Arquivos em C

Algoritmos e Estruturas de Dados II IEC013

Computação Eletronica: Arquivos (Introdução)

Manipulação de Arquivos

Linguagem C Ficheiros Compilação Separada

Linguagem C: Arquivo-Texto

Entrad Entrada / Saíd a / Saída

Arquivos em C. Notas de Aula. Prof. Francisco Rapchan

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

CURSO BÁSICO DE PROGRAMAÇÃO AULA 17. Manipulação de arquivos binários.

Listas (cont.) K&R: Capitulo 6. Lista Simplesmente Ligada IAED, 2012/2013. Conjunto de nós. Cada nó contém. head NULL. typedef struct node {

Manipulação de Arquivos em C

Introdução a Programação. Arquivos

USP - ICMC - SSC SSC o. Semestre 2010 Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

MC-102 Aula 24 Arquivos em C e Parâmetros do Programa

1/22 FICHEIROS BINÁRIOS

Fundamentos de Programação

Linguagem de Programação

Programação II. Files Read & Write. Bruno Feijó Dept. de Informática, PUC-Rio

Linguagem C arquivos. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Mestrado em Engenharia Física Tecnológica

1 Arquivos em C. CEFETES Serra - Programação II Mateus Costa Notas de Aula - Arquivos

Structs, Ponteiros e Arquivos. Prof. Maurício Dias

Arquivos. Prof. Dr. Silvio do Lago Pereira. Departamento de Tecnologia da Informação Faculdade de Tecnologia de São Paulo

Programação de Computadores II

MAC-115 Introdução à Computação para Ciências Exatas e Tecnologia IO Terceiro Exercício-Programa Entregar até 09/11/2007

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Computação para Engenharia Ambiental

Depuração e Teste de programas C C Depuração e teste de programas C

O que é a modularização

Sequência de informações binárias armazenadas num dispositivo de armazenamento permanente. Em geral os bits são agrupados em grupos de 8 (1 byte)

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Arquivos. INF1005 Programação I Profa. Simone D.J. Barbosa sala 410 RDC

Capítulo 6: Arquivos

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Programação de Computadores I Arquivos na Linguagem C PROFESSORA CINTIA CAETANO

Aula 30: Revisão para Prova 03

Programação Estruturada

Manipulação de Ficheiros

ARQUIVOS. Vanessa Braganholo Estruturas de Dados e Seus Algoritmos

Manipulação de Arquivos Exercício/Exemplo:

Alocação Dinâmica de Memória - Exercício

Transcrição:

USP - ICMC - SSC SSC 0300-2o. Semestre 2013 Disciplina de [ Eng. Elétrica / Automação ] Prof. Dr. Fernando Santos Osório / PAE: Rafael Klaser (LRM / ICMC) LRM - Laboratório de Robótica Móvel do ICMC / CROB-SC Email: fosorio icmc. usp. br ou fosorio gmail. com Página Pessoal: http://www.icmc.usp.br/~fosorio/ 1 Setembro 2013 Material on-line: Wiki ICMC - http://wiki.icmc.usp.br/index.php Wiki SSC0300 - http://wiki.icmc.usp.br/index.php/ssc-300-2013(fosorio) Aula 05

Linguagem de Programação C Agenda: Uso de Arquivos: Conceitos, Tipos e Funções de manipulação de arquivos Arquivos texto e arquivos binários: Funções de Abertura, Leitura, Escrita e Fechamento de Arquivos Funções Adicionais. Exemplos Práticos Exercícios Informações Complementares a Atualizadas: Consulte REGULARMENTE o material disponível na WIKI http://wiki.icmc.usp.br/index.php/ssc-300-2013(fosorio) 2

Linguagem de Programação C 3 Tipos de Dispositivos de E/S: Stdin, Stdout, Stderr, Arquivos Tipos de Dados em Arquivos: Dados Simples (int, float, double, char,...), Vetores e Dados Mistos Tipos de Arquivos: Arquivo Texto, Arquivo Binário Funções de Manipulação de Arquivos: Abertura de arquivos... fopen Leitura e Escrita... fscanf / fprintf + fgets / fputs (texto) Leitura e Escrita... fwrite / fread (binário) Fechamento de arquivos... fclose Rotinas complementares... feof, fflush, fchdir

Arquivos em C : Tipos de Dispositivos de E/S scanf => stdin (Arquivo: Standard Input ) ~ Teclado printf => stdout (Arquivo: Standard Output ) ~ Monitor mensagens de erro => stderr (Standard Error ) ~ Monitor Todos Dispositivos de Entrada e Saída (I/O) são vistos como ARQUIVOS. STDIN, STDOUT, STDERR => Arquivos padrão, abertos e prontos para o uso Exemplos: fprintf (stdout, Hello World!\n ); /* fprintf = file-printf */ 4

Arquivos em C : Redirecionamento de Dispositivos de E/S STDIN, STDOUT, STDERR => Arquivos padrão, abertos e prontos para o uso Dispositivos padrão de Entrada e Saída podem ser REDIRECIONADOS: Exemplo: - Redirecionando a saída da tela para um arquivo (saida.txt), da execução do programa (executável) programa > saida.txt - Redirecionando a entrada de um programa, que ao invés de vir do teclado, será lida de um arquivo (entrada.txt) programa < entrada.txt - Conectando a saida de um programa na entrada de outro programa. A saída do programa1 (na tela) vai para a entrada (do teclado) do programa2 programa1 programa2 5 + infos em: http://en.wikipedia.org/wiki/redirection_(computing)

Arquivos em C : Tipos de Arquivos 6 ARQUIVO TEXTO (usualmente.txt ) Armazenam dados na forma de texto (caracteres ASCII); - Podemos abrir um Arquivo TEXTO em um editor de textos, como o Notepad, o Wordpad ou o VI, e ler o seu conteúdo; - Um número é escrito usando dígitos em ASCII, por exemplo: 123 é armazenado como os caracteres 1 2 e 3 em seqüência formando uma seqüência de caracteres (string); - O número 12345 ocupará portanto 5 bytes (5 caracteres no arquivo). Vantagens do arquivo texto: - Fácil de editar, inserir, remover conteúdo usando um editor de textos - Fácil de visualizar e verificar o conteúdo que foi gravado

Arquivos em C : Tipos de Arquivos 7 ARQUIVO BINÁRIO (.dat,.bin, outros) Armazenam dados na forma binária (bytes, ints, doubles, etc); - NÃO podemos abrir um Arquivo BINÁRIO em um editor de texto, pois veremos apenas caracteres esquisitos; - Um número é armazenado na sua forma binária, por exemplo: 123 é armazenado como o byte de valor 123, que corresponde ao caracter na tabela ASCII! - O número 12345 ocupará somente 2 bytes (se for um short int). Desvantagens do arquivo binário: - Difícil de editar seu conteúdo pois não funciona no editor de textos - Difícil de visualizar e verificar o conteúdo que foi gravado

Manipulação de Arquivos 1. Incluir o <stdio.h>: #include <stdio.h> 2. Declarar uma Variável do Tipo Arquivo (ponteiro para arquivo) FILE *<nome_variável>; /* Arquivos já existentes: stdin, stdout, stderr */ 3. Funções e Procedimentos pré-definidos na Linguagem C para a Manipulação de Arquivos: <stdio.h> fopen - Abre um arquivo para leitura, escrita ou alteração fclose - Fecha o arquivo fprintf - Escreve dados em um arquivo texto fscanf - Lê dados de um arquivo texto feof - Testa para ver se encontramos o EoF (End-of-File) 8 Exemplo: # include <stdio.h> FILE *Arquivo; Arquivo = fopen ("dados.txt","wt"); fprintf (Arquivo,"Hello World!"); fclose (Arquivo); FILE *Arquivo; char Texto[100]; Arquivo = fopen ("dados.txt","rt"); fscanf (Arquivo, "%s", Texto); fclose(arquivo);

Manipulação de Arquivos Funções e Procedimentos da Linguagem para manipular arquivos fopen - Abrir arquivo Abre um arquivo para leitura, escrita ou alteração FILE *fopen (const char *filename, const char *mode); /* modes: b, t, r, w, a, + */ Exemplo: arqptr = fopen (NomeArq, "wt"); if (arqptr == NULL) printf ("\n\nerro no arquivo!\n\n"); exit(0); FILE *fopen ( <nome_arquivo>, <modo_abertura> ) Exemplo: FILE *arquivo; arquivo = fopen ( c:\arquivo.txt, rt ); Parâmetros: modo_abertura => r (read), w (write), a (append), + (r/w) b(binário), t (texto). Exemplos: rt, wb, r+... Retorno: NULL se ocorrer um erro na abertura,!(null) se funcionar 9 fclose - Fechar arquivo Fecha um arquivo que foi previamente aberto com o fopen Não esqueça de fechar arquivos w! Salva o conteúdo, data, tamanho,... int fclose (FILE *file); Exemplo: arqptr = fopen (NomeArq, "wt");... fclose (arqptr); arqptr = fopen (NomeArq, "rt");... fclose (arqptr);

Manipulação de Arquivos Funções e Procedimentos da Linguagem para manipular arquivos fopen - Abrir arquivo Abre um arquivo para leitura, escrita ou alteração FILE *fopen (const char *filename, const char *mode); /* modes: b, t, r, w, a, + */ Exemplo: arqptr = fopen (NomeArq, "wt"); if (arqptr == NULL) printf ("\n\nerro Modos: no arquivo!\n\n"); exit(0); FILE *fopen ( <nome_arquivo>, <modo_abertura> ) b = bínário Ex.: 123 => Binário (byte) t = texto Ex.: 123 => ASCII (texto) Exemplo: FILE *arquivo; arquivo = fopen ( c:\arquivo.txt, rt ); r = read '1' '2' '3' Parâmetros: modo_abertura => r (read), w (write), a (append), w = write + (r/w) b(binário), t (texto). Exemplos: rt, wb, a = r+ append... Retorno: NULL se ocorrer um erro na abertura,!(null) + = read/write se funcionar 10 fclose - Fechar arquivo Fecha um arquivo que foi previamente aberto com o fopen Não esqueça de fechar arquivos w! Salva o conteúdo, data, tamanho,... int fclose (FILE *file); Exemplo: arqptr = fopen (NomeArq, "wt");... fclose (arqptr); arqptr = fopen (NomeArq, "rt");... fclose (arqptr);

Manipulação de Arquivos Texto Funções e Procedimentos da Linguagem para manipular arquivos texto fprintf - Escrever no arquivo texto [printf] int fprintf (FILE *file, const char *format,...); Exemplo: fprintf (arqptr, "Gravando 1, 2, %d no arquivo: %s",3,nomarq); fscanf - Ler do arquivo texto [scanf] int fscanf (FILE *file, const char *format,...); Exemplo: fscanf (arqptr,"% d %d %d", &dia, &mes, &ano); feof - Testar se chegou ao final do arquivo int feof (FILE *file); Exemplo: while (!feof(arqptr) ) fscanf(arqptr,"%c",&caracter); printf("%c",caracter); 11

Manipulação de Arquivos Binários Funções e Procedimentos da Linguagem para manipular arquivos binário fwrite- Escrever no arquivo binário size_t fread(void *ptr, size_t size, size_t nmemb, FILE *stream); Exemplo: fwrite (Vetor, sizeof(int), 10, ArqPtr); fread - Ler do arquivo binário size_t fwrite(const void *ptr, size_t size, size_t nmemb, FILE *stream); Exemplo: fwrite (Vetor, sizeof(int), 10, ArqPtr); 12 Exemplos: #include <stdio.h> FILE *ArqPtr; int VetInt[5] = 1,2,3,4,5 ArqPtr=fopen( arq.bin, rb ); fread(vetint,sizeof(int),5,arqptr); fclose(arqptr); ArqPtr=fopen( arq.bin, wb ); fwrite(vetint,sizeof(int),5,arqptr); fclose(arqptr);

Manipulação de Arquivos: Texto Exemplo: #include <stdio.h> #define NomeArq "Arquivo.txt" FILE *ArqIn; char caracter; exibe-texto.c main() if ( ArqIn=fopen(NomeArq,"rt") ) while (!feof(arqin) ) fscanf(arqin,"%c",&caracter); printf("%c",caracter); fclose(arqin); else printf ("Erro na leitura do arquivo de entrada!"); 13

Manipulação de Arquivos: Texto #include <stdio.h> FILE *arqtxt; le-palavras.c #include <stdio.h> FILE *arqtxt; grava-palavras.c main ( ) main ( ) char palavra[256]; char palavra[256]; arqtxt = fopen ( arquivo.txt, rt ); arqtxt = fopen ( grava.txt, wt ); if (arqtxt == NULL) if (arqtxt == NULL) printf ( ERRO!\n ); printf ( ERRO!\n ); exit(1); exit(1); 14 while (! feof ( arqtxt ) ) for ( ; ; ) fscanf (arqtxt, %s, palavra); scanf ( %s,palavra); printf ( %s,palavra); fprintf(arqtxt, %s, palavra); if (strcmp(palavra, FIM ) == 0) break; fclose (arqtxt); fclose (arqtxt);

Manipulação de Arquivos: Texto Exemplo: #include <stdio.h> #define NomeArq "Texto.txt" FILE *ArqOut; char Texto[100]; char codigo; salva-texto.c 15 main() if ( ArqOut=fopen(NomeArq,"wt") ) codigo=' '; while (codigo!= '#') scanf("%s",texto); fprintf(arqout,"%s\n",texto); codigo=texto[0]; fclose(arqout); else printf ("Erro na criacao do arquivo de saida!");

Manipulação de Arquivos Funções e Procedimentos da Linguagem para manipular arquivos texto fgets - Ler uma linha de texto do arquivo [gets] Lê uma string terminada por um \n. Acrescenta um \0 na string. char *fgets (char *buffer, int maxlength, FILE *file); Exemplo: fgets (texto, 255, arqptr); fputs - Escrever uma linha de texto no arquivo [puts] Escreve uma string, substituindo o \0 por um \n. int fputs (const char *string, FILE *file); Exemplo: fputs (texto, arqptr); sprintf - Escrever para dentro de uma string [printf] int sprintf(char *buffer, const char *format,...); Exemplo: sprintf (texto,"valor total - R$%.2lf",VTotal); sscanf - Ler dados de dentro de uma string [scanf] int sscanf (const char *string, const char *format,...); Exemplo: sscanf(texto,"%d %d %d",&dia,&mes,&ano); 16 NULL = Ponteiro nulo ( \0 ) - Erro de abertura de arquivo [fopen] fwrite, fread Escrita e leitura de Arquivos Binários (blocos de dados)

Manipulação de Arquivos: Texto Exemplo: #include <stdio.h> #define NomeArq "Texto.txt" FILE *ArqOut; char Texto[100]; char codigo; salva-texto1.c 17 main() if ( ArqOut=fopen(NomeArq,"wt") ) codigo=' '; while (codigo!= '#') gets(texto); fputs(texto, ArqOut); fputs("\n",arqout); codigo=texto[0]; fclose(arqout); else printf ("Erro na criacao do arquivo de saida!");

Exemplos de Uso de Arquivos: Grava no arquivo Hello World! #include <stdio.h> #include <stdlib.h> Hello-Arquivo.c Arq.: saida.txt FILE *Arquivo; int main(int argc, char *argv[]) Arquivo=fopen("saida.txt","wt"); if (Arquivo == NULL) exit(0); fprintf(arquivo,"\n Hello World! \n"); fclose(arquivo); 18 system("pause"); return 0;

Exemplos de Uso de Arquivos: Lê uma palavra do arquivo 19 #include <stdio.h> #include <stdlib.h> FILE *Arquivo; int main(int argc, char *argv[]) char nome[30]; Arquivo=fopen("entrada.txt","rt"); if (Arquivo == NULL) exit(0); printf("qual o seu nome: "); fscanf(arquivo,"%s",nome); printf("nome: %s\n",nome); fclose(arquivo); system("pause"); return 0; Entrada-Arquivo.c Arq.: entrada.txt

Exemplos de Uso de Arquivos: Lê 10 números de um arquivo #include <stdio.h> #include <stdlib.h> FILE *Arquivo; int Vetor[10]; int main(int argc, char *argv[]) int i; Arquivo=fopen("numeros.txt","rt"); if (Arquivo == NULL) exit(0); Le-Numeros.c Arq.: numeros.txt /* Exibe na tela os numeros lidos */ for (i=0; i < 10; i++) printf("numero [%d]: %d\n", i, Vetor[i]); fclose(arquivo); system("pause"); return 0; /* Le 10 numeros de um arquivo */ for (i=0; i < 10; i++) fscanf(arquivo,"%d", &Vetor[i]); 20

Exemplos de Uso de Arquivos: Grava 10 números em um arquivo 21 #include <stdio.h> #include <stdlib.h> FILE *Arquivo; int Vetor[10]; int main(int argc, char *argv[]) int i; Arquivo=fopen("nros-salvos.txt","wt"); if (Arquivo == NULL) exit(0); /* Le 10 numeros digitados pelo teclado */ for (i=0; i < 10; i++) printf ("Entre com o nro. %d : ", i); scanf("%d", &Vetor[i]); Salva-Numeros.c Arq.: nros-salvos.txt /* Grava em disco os 10 numeros lidos */ for (i=0; i < 10; i++) fprintf(arquivo,"%d\n", Vetor[i]); fclose(arquivo); system("pause"); return 0;

Arquivos: Exercícios Exercícios - Uso de Arquivos: 1. 2. 22 3. Faça um programa que leia um arquivo HTML e grave em disco o conteúdo deste arquivo removendo todas as tags do HTML. As tags começam pelo caracter < e terminam pelo >, por exemplo: <b> Exemplo de imagem </b> <img src= imagem.jpg > <br>

INFORMAÇÕES SOBRE A DISCIPLINA USP - Universidade de São Paulo - São Carlos, SP ICMC - Instituto de Ciências Matemáticas e de Computação SSC - Departamento de Sistemas de Computação Prof. Fernando Santos OSÓRIO Web institucional: http://www.icmc.usp.br/ Página pessoal: http://www.icmc.usp.br/~fosorio/ Página do Grupo de Pesquisa: http://www.lrm.icmc.usp.br/ E-mail: fosorio [at] icmc. usp. br ou fosorio [at] gmail. com 23 Disciplina de SSC300 WIKI - http://wiki.icmc.usp.br/index.php/ssc-300-2013(fosorio) > Programa, Material de Aulas, Critérios de Avaliação, > Trabalhos Práticos, Datas das Provas, Notas Setembro 2013