A. Ferrari. File. in C

Documenti analoghi
La gestione dei file in C

Gestione dei File. Indice. Il file system in C. Principali operazioni sui file (dalla Standard Library) Esempi. Corso di Informatica A.

Gestione dei file in C

Gestione dei file in C

I files in C. A cura del prof. Ghezzi

I file. un file è una sorgente/destinazione di dati per diversi attori

Gestione dei File. Credits Prof. Campi

Laboratorio di Calcolatori 1 Corso di Laurea in Fisica A.A. 2006/2007

Gestione dei file. Linguaggio ANSI C Input/Output - 13

Il linguaggio C. Breve panoramica su stdio.h

I files (archivi) Il C definisce in stdio.h tre file aperti automaticamente: stdin, stdout e stderr.! Sono ad accesso sequenziale diretto

Perchè i files? Realizzano la persistenza dei dati. Sono delle strutture di dati sequenziali. dati che sopravvivono all esecuzione del programma

Laboratorio di Programmazione

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 6 Marzo 2016

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 21 Maggio 2014

Informatica B a.a 2005/06 (Meccanici 4 squadra) PhD. Ing. Michele Folgheraiter

Esercizi. I File ed il C

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2015

Input/output console file caratteri stringhe formattato ascii binari

Linguaggio C Gestione File

Introduzione al C. Stream e disk file

Streams e disk files

Introduzione. L elaborazione dei files in C. Elaborazione dei files (1) Elaborazione dei files (2) D.D. cap. 11+ pp K.P. pp.

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

Linguaggio C: i file

GESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009

Gestione dei File in C

Corso di Fondamenti di Programmazione canale E-O. Introduzione. Elaborazione dei files (2)

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

FONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine

Esercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018

Input / Output. Come già detto, input e output sono realizzati in C da funzioni di stdio.h all'interno della libreria standard

FILE: tipo operazione Istruì. prototipo esempi lettura di un carattere fgetc Int fgetc(file *flusso) Vedi sotto

Gestione dei files. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132

DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2013

Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File

Gestione dei File. dischi nastri cd

SOMMARIO SU LETTURA E SCRITTURA (I/O) DEGLI STANDARD FILES

Lezione 15. Introduzione

Capitolo 5 -- Stevens

Files in C endofile

Solo due operatori aritmetici possono essere applicati alle variabili di tipo puntatore: somma e sottrazione.

Operazioni su file di caratteri

I File. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centarle.

Suggerimenti, note utili ed errori comuni. Fondamenti di informatica T

I File. Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa.

Settimana n.12. Obiettivi File!di!testo. Contenuti Concetto!di!file!e!funzioni! fopen/fclose Funzioni!fgets+sscanf Approfondimenti!su!printf! e!

Fondamenti di Informatica T. Linguaggio C: File

Laboratorio di Sistemi Operativi primavera 2009

Esercitazione n. 7. Gestione dei file (seconda parte)

Prof. G. Ascia. Gestione dei File C

Gestione dei file. File di testo e binari

Corso di Informatica A.A

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

ELEMENTI DI INFORMATICA. Linguaggio C

File. Molto astratta: file ha un nome (ex. Pippo.c), ed altre caratteristiche (dimensione, tipo, etc). Operazioni: copiare, cancellare, eseguire..

Input/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE

D Alcune funzioni della libreria standard del C

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 Matricole congrue 0 mod 3

caratteri, immagini, suoni, ecc.

Lezione 22: Input/Output e Files

Informatica (A-K) 23. Linguaggio C -8

Le strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.

Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011

I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002

GESTIONE DEI FILE. File come tipo di dati

I file possono essere manipolati (aperti, letti, scritti ) all interno di programmi C. dischi nastri cd

Laboratorio di Informatica

Struttura dati FILE. Motivazioni: memorie a confronto

LP1 Lezione 13: i File in C. Maurizio Tucci

Laboratorio di Informatica

Dispensa 25 CORSO DI PROGRAMMAZIONE A.A CORSO DI LAUREA IN SCIENZE E TECNOLOGIE INFORMATICHE CESENA. Laboratorio

Il linguaggio C I file

Indice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale

Lezione XII.III Gestione dei file Un progetto completo

DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA SIENA UFF

Indice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale

Matrici, stringhe e I/O da file

I/O da file. Matrici. Stringhe. Memory leakage. Matrici, stringhe e I/O da file

Introduzione al C. Unità 9 File. D. Bloisi, S. Peluso, A. Pennisi, S. Salza

I File. File. File di testo. Esempi di file di testo. Gestione di file in C. Gestione di file in C

Input/Output su disco

Fondamenti di Informatica L-A

Gestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico

Gestione dei files in linguaggio C. Un progetto completo

Il linguaggio C I file. mylib.h contribuenti.txt. #include <stdio.h> #define N 25 Paolucci,Enrico, 24000,23.0. fornitori.dat

INFORMATICA. I file. File. File. File

Programmazione C Massimo Callisto De Donato

Gestione dei File C. Generalità

Input/Output su File

Linguaggio C La libreria standard

Linguaggio C La libreria standard

Input/Output. Lettura e scrittura Caratteri e Stringhe: Terminale e file. Input/output. caratteri stringhe formattato ascii binari

Fondamenti di Informatica

FILE SEQUENZIALI E AD ACCESSO DIRETTO

FILE BINARI. I file di testo non sono indispensabili: sono semplicemente comodi!

Transcript:

File in C

stream - flussi in C la gestine dei file avviene attravers un fluss di cmunicazine per utilizzare un file è necessari dichiarare una variabile di tip puntatre al file (ad un ggett di tip FILE) la funzine fpen permette di aprire un file per pter perare cn ess la funzine fclse chiude il fluss e termina le perazini su quest.

tipi di flussi in C trviam due tipi di flussi di cmunicazine: binari : sequenze di byte di test : sequenze di caratteri suddivise in linee terminate dal carattere di newline

il tip FILE all intern di un FILE trviam tutte le infrmazini necessarie per la sua gestine: mdalità di utilizz: lettura, scrittura lettura e scrittura psizine crrente: punta al prssim byte da leggere scrivere sul file; indicatre di errre indicatre di end-f-file (ef)

dichiarazine FILE *<nme del file>; esempi: FILE *fp; i flussi standard (tastiera e vide) sn autmaticamente aperti all inizi dell esecuzine di un prgramma stdin (standard input) è assciat alla tastiera stdut (standard utput) è assciat al vide stderr (standard errr) è assciat al vide es. printf scrive su stdut e scanf legge da stdin

apertura di un file FILE *fpen (nmefile, mdalità) restituisce il puntatre a un file aprend il fluss secnd la mdalità specificata mdalità pssibili: r: lettura in mdalità test, psizinament inizi file w: scrittura in mdalità test, psizinament inizi file a: scrittura in mdalità test, psizinament fine file rb, wb, ab: r, w, a, in mdalità binaria r+, w+, a+, rb+, wb+, ab+: lettura e scrittura su file cn mdalità di test binaria

chiusura intfclse (FILE *fp) pne a NULL il valre di fp, restituisce 0 EOF in cas di errri

perazini sui file int remve(nmefile) elimina un file (0 se eliminat cn success) int rename(vecchinme,nuvnme) rinmina un file (0 perazine terminata cn success) int fef(file *fp) 1 (true) se si è raggiunta la fine del file

perazini di lettura e scrittura tipi di lettura e scrittura lettura e scrittura frmattata: si definisce il frmat dei dati da maniplare lettura e scrittura di caratteri: access per caratteri lettura e scrittura di stringhe: access per linee lettura e scrittura di strutture: acces per blcchi

lettura e scrittura frmattata int printf (stringa di cntrll, elementi) int scanf (stringa di cntrll, indirizz elementi) int fprintf (FILE *fp, stringadicntrll, elementi) int fscanf (FILE *fp, stringadicntrll, indirizz elementi)

lettura e scrittura per caratteri int getchar (vid) int putchar(int c) int getc(file *fp) int fgetc (FILE *fp) int putc (int c, FILE *fp) int fputc (int c, FILE *fp)

lettura e scrittura per stringhe char *gets(char *s) int fgets (char *s, int n, FILE *fp) int puts (char *s) int fputs (char *s, FILE *fp)

esempi cn file di test (1) /*Legge e mstra sul vide il cntenut del file di test filechar*/ #include <stdi.h> /* Cntiene la definizine di EOF, del tip FILE e le testate delle funzini che peran su file */ #include <stddef.h> /* Cntiene la definizine di NULL */ main() { FILE *fp; char c; } if ((fp = fpen("filechar", "r"))!= NULL) /* Il file viene apert in lettura cn mdalità test */ { while ((c = fgetc(fp))!= EOF) /* Viene lett e stampat un carattere per vlta sin a fine file */ putchar(c); fclse(fp); } else printf("il file nn può essere apert\n");

esempi cn file di test (2) /*Lettura e scrittura di stringhe (1)*/ #include <stdi.h> #include <stddef.h> #include <string.h> #define OK 1 #define ERROR 0 #define MAXLINE 100 int cpiaselettiva(char refstr[]) { char line[maxline]; FILE *fin, *fut; if ((fin = fpen("filein", "r")) == NULL) /* filein viene apert in lettura cn mdalità test */ return ERROR; if ((fut = fpen("fileut", "w")) == NULL) /* fileut viene apert in scrittura cn mdalità test */ { fclse(fin); return ERROR; }

esempi cn file di test (3) /*Lettura e scrittura di stringhe (2)*/ while (fgets(line,maxline,fin)!= NULL) /* fgets legge da filein al più MAXLINE 1 caratteri e assegna al vettre line i caratteri letti, inclus l'eventuale carattere di newline, e termina la stringa cn il carattere \0 */ if (strstr (line,refstr)!= NULL) /* La funzine strstr restituisce la psizine della prima ccrrenza della stringa puntata da refstr nella stringa puntata da line; se la secnda stringa nn è cntenuta nella prima viene restituit il valre NULL */ fputs(line,fut); fclse(fin); fclse(fut); return OK; }

lettura e scrittura di strutture int fread(vid *ptr, dimelem, numelem, FILE *fp); int fwrite(vid *ptr, dimelem, numelem, FILE *fp);

esempi cn file binari (1) /*Gestine file Persne (1)*/ typedef struct { char nme[20]; char cgnme[20]; char indirizz[50]; } Persna; typedef char CdFisc[16]; typedef struct { char nme[20]; char cgnme[20]; char indirizz[50]; CdFisc CdiceFiscale; } NuvaPersna; /* I file Persne, CdiciFiscali e Nuve Persne si suppngn aperti dal main. pp, cf e np fann riferiment ai tre file in questine */ int AggirnaPersne (FILE *pp, FILE *cf, FILE *np) { Persna PersnaCrrente; CdFisc CdFiscCrrente; NuvaPersna NuvaPersnaCrrente;

esempi cn file binari (2) /*Gestine file Persne (2)*/ rewind(pp); /* Rende pssibile le seguenti perazini di lettura e scrittura sul file identificat da pp, iniziand dal prim byte del file.*/ rewind(cf); rewind(np); while (fread(&persnacrrente,sizef(persna),1,pp)!= 0) /* Finché nn si è raggiunta la fine del file */ { fread(&cdfisccrrente,sizef(cdfisc),1,cf); strcpy(nuvapersnacrrente.nme, PersnaCrrente.nme); strcpy(nuvapersnacrrente.cgnme,persnacrrente.cgnme); strcpy(nuvapersnacrrente.indirizz, PersnaCrrente.indirizz); strcpy(nuvapersnacrrente.cdicefiscale, CdFiscCrrente); fwrite(&nuvapersnacrrente,sizef(nuvapersna),1,np); } }

access dirett cnsente di accedere direttamente ai byte specificati all intern del file tramite le funzini: int fseek(file *fp, lng ffset, int refpint) refpint: SEEK_SET : scstament rispett all inizi del file, SEEK_CUR : scstament rispett alla psizine crrente, SEEK_END : scstament rispett alla fine del file. lng ftell(file *fp) rewind(f) equivale a: fseek (f, 0, SEEK_SET);

access dirett (2) /*Inversine del cntenut di un file numint di interi (1)*/... main () { FILE *f; lng int inizi, fine; int tempi, tempf; unsigned int dim; if ((f = fpen ("numint", "rb+")) == NULL) { puts ("Nn è stat pssibile aprire il file numint"); /* più efficiente della printf per la stampa di un messaggi dat che nn richiede la scansine e l interpretazine della stringa di cntrll */ exit(1); /* La funzine exit prvca una cnclusine nn anmala del prgramma e la restituzine del cntrll al sistema perativ */ }

access dirett (3) /*Inversine del cntenut di un file numint di interi (2)*/... inizi = 0; dim = sizef(int); fseek (f, dim, SEEK_END); /* SEEK_END è una cstante definita nel file stdi.h. Ha valre 2 */ fine = ftell (f); while (inizi < fine) { fseek (f, inizi, SEEK_SET); fread (&tempi, dim, 1, f); fseek (f, fine, SEEK_SET); fread (&tempf, dim, 1, f); /* È necessari ripsizinarsi */ fseek (f, fine, SEEK_SET); fwrite (&tempi, dim, 1, f); fseek (f, inizi, SEEK_SET); fwrite (&tempf, dim, 1, f); inizi = inizi + dim; fine = fine dim; } }