A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres.

Apresentações semelhantes


Apresentação em tema: "Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres."— Transcrição da apresentação:

1 Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres

2 Programas executando lidam com variáveis –forma abstrata pela qual os programadores enxergam os dados que seus programas manipulam. –internamente, variáveis ocupam células de memória. usualmente o tipo inteiro de C corresponde a 32 bits uma variável int em C ocupa 4 bytes (4 células de memória). A memória principal de um computador (RAM) é o local onde os programas em execução, e as variáveis que eles utilizam, são armazenados. 2 Variáveis transientes e persistentes

3 Essas variáveis armazenadas na memória principal –são chamadas de variáveis transientes –seu tempo de existência é limitado pelo tempo que o programa se encontra em memória. Quando o usuário ou o SO decidirem finalizá-lo, essas variáveis deixarão de existir. Computadores teriam sua utilidade muito reduzida se os dados só pudessem ser armazenados enquanto os programas estivessem na memoria principal (e a maquina, ligada). 3 Variáveis transientes e persistentes

4 Variáveis persistentes –conteúdo armazenado, e possível de ser acessado, independentemente do programa que as criou estar na memória principal. –variáveis persistentes são armazenadas em algum dispositivo de memória chamada de secundária: como discos rígidos, CD/DVD, memória flash mantém por um longo tempo os dados neles contidos independe do conteúdo da memória do computador, ou mesmo de ele estar ligado. ressalta-se que o tempo de armazenamento de, e acesso a dados usando dispositivos de memória secundária é muito maior que usando a memória principal! 4 Variáveis transientes e persistentes

5 O conceito por trás das variáveis persistentes é o de arquivo –por meio de arquivos, as variáveis podem ser armazenadas e seus dados acessados e processados a qualquer tempo, tanto pelo programa que as criou quanto por outros programas. 5

6 Tipos de arquivos Texto –arquivo texto é uma sequência de caracteres –dados armazenados de tal forma que em C são armazenados em variáveis do tipo char. –um arquivo texto aberto num editor de texto convencional, poder ter seu conteúdo ao menos visualizado e modificado também... (com caracteres que façam sentido, ou não!...) 6

7 Tipos de arquivos Binário –Espelho do conteúdo da memória –Comando específico de leitura e escrita –Exemplo 7 1 struct pessoa { 2 char nome[50]; 3 int idade; 4 float salario; 5 } 50 bytes que armazenam cada uma das variáveis char, mais 32 bits (4 bytes) que armazenam uma variável int, e mais 32 bits (4 bytes) que armazenam uma variável float.

8 Definição de arquivos no programa os arquivos são tratados como variáveis como todas as outras variáveis, devem ser declarados podem ser usados como argumentos para funções existem funções para realizar todas as operações sobre arquivos 8 1FILE *arq; 2 na linguagem C o tipo FILE, definido na biblioteca stdio.h, é usado para se trabalhar com arquivos. Um ponteiro para FILE deve ser declarado sempre que uma variável arquivo for utilizada no programa.

9 Operações sobre arquivos 9 1/* Protótipo da função de abertura de arquivos */ 2 3FILE *fopen (char *nomearq, char *modo); Parâmetros: ponteiro para char – nomearq (nome do arquivo físico) outro ponteiro para char com o modo de uso do arquivo e tipo. 1/* Exemplo */ 2FILE *arq1, *arq2; 3 4arq1 = fopen ("somente_escrita.txt", "w"); 5arq2 = fopen ("leio_e_escrevo.meu", "r");

10 Definição de arquivos no programa a função fopen() –avaliação de seu valor de retorno. –erros na abertura de um arquivo ex: passar para fopen() o código “r”, mas o arquivo não existe –retorno de fopen() é NULL indicando a falha na abertura do arquivo 10 1 FILE *arq; 2 arq = fopen ("alunos.txt", "r"); 3 if (arq == NULL) { 4 printf ("Erro na abertura de arquivo! Programa terminado..."); 5 exit (1); 6 } exit() é uma função da biblioteca stdlib.h da linguagem C, que retorna o controle ao SO, passando um código de retorno, e terminando o programa.

11 Fechamento de arquivos retorna zero se a operação terminou sem falhas caso contrário, retorna um valor diferente de zero recebe como parâmetro um ponteiro para FILE quando fclose() é usada, os dados pendentes na “buffer” do arquivo são escritos e o arquivo físico é dissociado de FILE* 11 1/* Protótipo da função de fechamento de arquivos */ 2 3int fclose (FILE *arq);

12 Operações com arquivos texto Operações de leitura –fscanf(), fgets() A primeira parece com uma velha conhecida: scanf() A segunda será apresentada, para quem ainda não conhece 12 1/* Protótipos das funções de leitura de arquivos texto*/ 2 3int fscanf ( FILE *fp, const char *format,... ); 4char *fgets (char *str, int length, FILE *fp); 5

13 Uso de fscanf(..) 13 fscanf() para de ler a linha quando encontra o fim da linha. Neste caso, cada variável lida. Por este motivo esta função não é indicada para leitura de strings que possam ter um fim de linha em seu conteúdo.

14 Uso de fgets(..) 14

15 Operações com arquivos texto Operações de escrita –fprintf() Parece com uma velha conhecida: printf() 15 1/* Protótipo da função de escrita de arquivos texto*/ 2 3int fprintf ( FILE *fp, const char *format,... ); 4

16 Uso de fprintf(...) 16

17 Algumas funções úteis feof() –verificação de fim de arquivo  A função que recebe como parâmetro o ponteiro associado a um arquivo já aberto (via fopen), retorna zero se o arquivo ainda não chegou ao fim; 17 1/* Protótipos da função feof() */ 2 3int feof(FILE *fp);


Carregar ppt "Programação II Arquivos Autoria: Ernani Santos Modificação: Clebson Oliveira Adaptação: Claudia Boeres."

Apresentações semelhantes


Anúncios Google