ARCHIVI E FILE. Prof. Ciaschetti
|
|
- Elena Carli
- 7 anni fa
- Visualizzazioni
Transcript
1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOJ ARCHIVI E FILE Prof. Ciaschetti Un archivio è un insieme di registrazioni (record) memorizzate in modo persistente, cioè resta memorizzato permanentemente, anche in assenza di energia. Sono archivi, ad esempio: - una rubrica telefonica: ogni nominativo corrisponde a una registrazione, e per ogni registrazione possiamo avere il nome, il numero di telefono di casa, il numero di cellulare, ecc. - il registro di classe: ogni registrazione è un giorno che riposta le materie, le firme dei docenti, gli assenti, le giustificazioni, le note - l archivio dei clienti di un azienda: per ogni cliente, si possono avere il nominativo, la partita iva, l indirizzo, ecc. - l archivio degli utenti registrati a un sito web: ogni registrazione in questo caso memorizza il nome utente e la password. La caratteristica principale di un archivio è che le diverse registrazioni hanno tutte la stessa struttura. Ogni archivio è memorizzato su di un supporto che ne garantisce la persistenza. Il supporto su cui è memorizzato un archivio può essere di diverso tipo: nel caso del registro di classe, è di tipo cartaceo; la rubrica telefonica può essere memorizzata in forma cartacea, oppure in forma elettronica (come sul cellulare), ecc. Un archivio memorizzato in modo elettronico è realizzato tramite file. Un file è una sequenza di bit memorizzata in modo persistente su memoria di massa (Es. hard disk, floppy disk, pen drive, cd, dvd, microsd, ecc.). Un file non è sempre un archivio. Ad esempio, un file.cpp è un file in cui è scritto un programma in C/C++, un file.exe è un file eseguibile, un file.doc è un documento word, ecc, e nessuno di questi è un archivio. In generale, ogni archivio elettronico è anche un file, ma non è vero il viceversa, ci sono file che non sono archivi. Ci sono due tipi di file: file di testo e file binari. I file di testo sono leggibili dall uomo, mentre i file binari non lo sono. Il motivo di questa differenza sta nel fatto che i file di testo vengono scritti e letti utilizzando la codifica ASCII (un byte per ogni carattere, ricordate?), mentre nei file binari i dati vengono scritti così come sono all interno della RAM. Facciamo un esempio: Supponiamo di avere una variabile intera su 2 byte alla quale diamo il valore 125: short int N; N = 125;
2 In RAM, nei due byte riservati per la variabile N, avremo la rappresentazione binaria del numero 125, ossia Quando andiamo a memorizzare N su un file di testo, il numero sarà formattato in modo che l uomo possa leggerlo, cioè verrà trasformato nei seguenti tre byte che rappresentano il numero 125: rappresentazione ASCII del carattere rappresentazione ASCII del carattere rappresentazione ASCII del carattere 5 Se invece andiamo a memorizzare N su un file binario, il numero sarà scritto sul file così com è nella RAM, occupando solo 2 byte. Supponiamo ora di avere un altra variabile dello stesso tipo, a cui diamo il valore 8: short int M; M = 8; In RAM, nei due byte riservati per la variabile M, avremo la rappresentazione binaria del numero 8, ossia Se memorizziamo N su un file di testo, il numero sarà formattato in modo che l uomo possa leggerlo, cioè verrà trasformato in un solo byte: rappresentazione ASCII del carattere 8 Se invece memorizziamo M su un file binario, il numero sarà scritto sul file così com è nella RAM, occupando 2 byte. Dall esempio precedente notiamo che nei file binari, dati di uno stesso tipo occupano sempre la stessa dimensione (2 byte, nel caso del tipo short int dell esempio), mentre nei file di testo la loro dimensione dipende da quanti caratteri servono nella loro rappresentazione leggibile per l uomo (3 byte nel caso di 125, 1 byte nel caso di 8). Lo stesso vale per i record: nei file binari un record occupa sempre la stessa dimensione, che è lo spazio che serve in RAM per memorizzare il record, mentre nei file di testo la dimensione del record non è sempre la stessa, ma dipende dai dati che esso contiene. Come è possibile riconoscere un file binario da un file di testo? In generale, non esiste un modo, dipende da come il file è stato scritto. Tuttavia, se proviamo ad aprire il file con un qualsiasi editor di testo (ad esempio il blocco note), notiamo che il file di testo possiamo leggerlo, perché è stato formattato per l uomo al momento della sua scrittura, mentre nel file binario leggiamo solo tanti caratteri strani, perché l editor di testo proverà comunque a interpretare la sequenza di bit come una sequenza di caratteri in codifica ASCII, ma non è detto che significhino qualcosa. In generale, i file di testo hanno estensione.txt, ma possono anche avere diverse estensioni, come ad esempio.cpp (file di testo per programmi in linguaggio C),.pas (file di testo per programmi in linguaggio Pascal),.htm (file di testo per pagine web),.ini (file di testo con le impostazioni iniziali di un programma), tranne quelle riservate a particolari file binari, come ad esempio.exe (programma eseguibile),.com o.bat (file di comandi per il sistema operativo),.lib o.dll (file di librerie di programmi). Anche i file binari possono avere qualunque estensione, tranne.txt che è riservata ai file di testo. 2
3 Tornando a parlare di archivi, una caratteristica importante che distingue gli archivi è la modalità di accesso, che può essere: - accesso sequenziale - accesso casuale o diretto Per accesso sequenziale si intende che si accede all inizio dell archivio, e poi bisogna scorrerlo in avanti per arrivare all informazione desiderata, un po come il nastro di una videocassetta. Per accesso casuale, invece, si intende la possibilità di accedere direttamente all informazione desiderata, come succede ad esempio nei lettori cd, dove possiamo scegliere il numero della traccia e sentire direttamente quella, senza dover scorrere prima tutte le tracce precedenti. I file di testo sono sempre ad accesso sequenziale, mentre i file binari permettono l accesso casuale. La motivazione sta nel fatto che mentre nei file binari sappiamo che il numero di byte di una registrazione è sempre lo stesso, nei file di testo questo non è possibile. Facciamo un esempio: Supponiamo che ogni registrazione rappresenti un punto del piano cartesiano, con due campi che indicano la coordinata x e la coordinata y del punto. La struttura che definisce il record potrebbe essere la seguente: struct punto { float x; float y; }; typedef struct punto point; Supponiamo ora di voler creare un archivio con i seguenti punti: point punto1, punto2, punto3; punto1.x = 3.534; punto1.y = 2.34; punto2.x = 7.235; punto2.y = 4.1; punto3.x = ; punto3.y = 3.877; utilizzando un file binario, andremo a rappresentare i dati esattamente nella loro forma binaria, e cioè, essendo il tipo di dato float su 4 byte, avremo 8 byte per il primo punto (4 per la coordinata x, 4 per la coordinata y), 8 byte per il secondo punto e 8 byte per il terzo punto. Complessivamente, il nostro file avrà una dimensione pari a 24 byte. Potremmo, ad esempio, effettuare un accesso diretto al terzo record dicendo semplicemente salta in avanti di 2 volte la dimensione di un record. Se invece utilizziamo un file di testo per memorizzare il nostro archivio, il primo punto richiederà complessivamente 9 byte, 5 byte per la coordinata x (i caratteri 3,., 5, 3 e 4 ) e 4 byte per la coordinata y (i caratteri 2,., 3, 4 ). Analogamente, il secondo record richiederà 8 byte e il terzo record 12 byte. Non conoscendo a priori la dimensione di ogni record, non sappiamo dire di quanto occorre saltare in avanti per posizionarsi sul terzo record. 3
4 E meglio usare archivi ad accesso sequenziale o archivi ad accesso diretto? La risposta dipende dal tipo di operazioni che devono essere eseguite sull archivio. Se l archivio ci serve solo per fare un backup dei dati, che poi difficilmente andremo a rileggere, può andare benissimo un archivio ad accesso sequenziale (ed infatti, per questo tipo di archivi sono spesso usati file di testo). Se invece occorre effettuare spesso operazioni di lettura di dati dall archivio, e in modo disordinato (cioè non sequenziale), conviene utilizzare un archivio ad accesso diretto per evitare di aspettare ogni volta che vengano letti tutti i record che precedono quello che ci interessa. Per evitare accessi multipli in scrittura su un file, che potrebbero causare effetti indesiderati (si pensi a due programmi che cerchino di scrivere contemporaneamente la stringa ciao e la stringa pippo su uno stesso file: si potrebbe avere come effetto, ad esempio, la scrittura della stringa cpipiaopo completamente priva di significato), si ricorre a un meccanismo semaforico di apertura e chiusura del file. Questo meccanismo prevede di aprire il file prima di compiere su di esso le operazioni di lettura/scrittura, e poi chiuderlo alla fine. Quando un file è aperto in scrittura da un processo, nessun altro processo può accedere al file per scriverci sopra, fino a quando esso non sarà stato chiuso. In lettura, invece, non ci sono problemi. Istruzioni del linguaggio C per lavorare con i file Per lavorare con un file in C occorre innanzitutto dichiarare una variabile di tipo puntatore a file, come ad esempio FILE *fp; Nella variabile fp verrà memorizzato l indirizzo del file (in questo caso non si tratta di un indirizzo nella memoria RAM, ma su memoria di massa, quindi costituito da numero di cilindro, traccia e settore del dispositivo magnetico o ottico di memorizzazione) al momento della sua apertura. APERTURA E CHIUSURA DEL FILE Per aprire un file, si utilizza l istruzione fopen: fopen("nomefile.estensione","modalita"); Apre un file. Restituisce l indirizzo del file, oppure NULL se il file non è stato trovato. Modalità: r = lettura, w = scrittura, a = append, r+ = lettura/scrittura. La modalità w riscrive il file da capo, e ne crea uno nuovo nel caso in cui non esiste. La modalità a continua a scrivere un file mantenendo il suo contenuto precedente, e crea un nuovo file nel caso in cui non esiste. La modalità r+ riscrive il file da capo, e ne crea uno nuovo nel caso in cui non esiste. FILE *fp; /* dichiarazione della variabile puntatore a file fp */ fp = fopen("pippo.txt","r"); /* apre il file in modalità lettura e salva in fp l indirizzo del file */ 4
5 fp = fopen("videoteca.dat","w"); /* apre il file in modalità scrittura e salva in fp l indirizzo del file */ Al momento dell apertura di un file la testina di lettura/scrittura si posiziona all inizio del file, e scorre in avanti, ad ogni operazione di lettura/scrittura, di tanti byte quanti sono quelli letti o scritti. Per chiudere un file, dopo che ci si è lavorato, si usa l istruzione fclose: fclose(indirizzo del file); Chiude un file precedentemente aperto. Se il file non era stato aperto, dà errore. fclose(fp); /* fp puntatore a file già aperto in precedenza */ LETTURA E SCRITTURA SU FILE DI TESTO Ci sono due istruzioni per leggere e due istruzioni per scrivere su file di testo. Due di queste si riferiscono alla lettura e scrittura di un carattere per volta (getc e putc), mentre le altre due si riferiscono alla lettura e scrittura formattata di un qualsiasi dato (fscanf e fprintf). Tutte e quattro queste istruzioni non si riferiscono direttamente al nome del file, ma al suo indirizzo, che è stato salvato al momento dell apertura nella variabile di tipo puntatore a file (che supponiamo si chiami fp in quanto segue). ISTRUZIONI PER LEGGERE E SCRIVERE UN SINGOLO CARATTERE Per leggere un carattere da file di testo si usa l istruzione getc: getc(indirizzo del file) Legge i prossimi 8 bit da file di testo. Restituisce il carattere letto, oppure EOF se alla fine del file. char ch; /* variabile di tipo carattere */ ch = getc(fp); /* assegna a ch il carattere letto da file */ printf( %c, getc(fp)) /* visualizza il carattere letto dal file */ 5
6 Per scrivere un carattere su file di testo si usa l istruzione putc: putc(carattere, indirizzo del file) Scrive il carattere su file di testo. E di tipo void. putc( W, fp); /* scrive il carattere W sul file */ char ch = A ; /* variabile di tipo carattere */ putc(ch, fp); /* scrive il carattere ch su file */ ISTRUZIONI PER LEGGERE E SCRIVERE UN QUALSIASI DATO Per leggere un qualsiasi dato da file di testo si usa l istruzione fscanf: fscanf(indirizzo del file, specificatore di formato, indirizzo RAM) Legge da file un dato formattato secondo lo specificatore di formato, e lo memorizza in RAM all indirizzo specificato. Restituisce il numero di byte letti, oppure EOF se alla fine del file. Può essere usata come void. int N; fscanf(fp,"%d",&n); /* legge un intero da file e lo memorizza nella variabile N*/ if(fscanf(fp,"%d",&n) == EOF) printf("errore"); /* prova a leggere un intero da file, ma raggiunge la fine del file prima di riuscirci */ 6
7 Per scrivere un qualsiasi dato su file di testo si usa l istruzione fprintf: fprintf(indirizzo del file, stringa di output, espressioni) float t = 1.5; fprintf(fp,"%f",t); /* scrive su file il valore 1.5 */ Scrive la stringa di output formattata su file di testo. Restituisce il numero di byte scritti. Può essere usata come void. fprintf(fp,"ciao mondo"); /* scrive ciao mondo su file */ fprintf(fp,"\n ); /* va a capo nel file */ fprintf(fp,"%d %d", 3, 8); /* scrive su file 3 e 8 */ fprintf(fp,"%c, A ); /* scrive su file il carattere A */ 7
8 LETTURA E SCRITTURA SU FILE BINARIO Per la lettura e scrittura su file binario si usano due istruzioni: fread e fwrite. Entrambe trasferiscono un insieme di bit da file a RAM (fread) o da RAM a file (fwrite) così come sono memorizzati, senza formattazione. Per leggere un qualsiasi dato da file binario si usa l istruzione fread: fread(indirizzo RAM, numero byte, numero blocchi, indirizzo del file) Legge da file uno o più blocchi di bit non formattati, e li memorizza in RAM a partire dall indirizzo specificato. Parametri: numero byte: numero di byte del blocco numero blocchi: numero di blocchi da leggere. Restituisce il numero di blocchi letti. int N; fread(&n, sizeof(int), 1, fp); /* legge un intero da file e lo memorizza nella variabile N*/ struct libro { /* definizione del record */ char titolo[20]; char autore[20]; int anno; char editore[20]; }; typedef struct libro book; /* definizione esplicita */ book b; /* dichiarazione variabile */ fread(&b, sizeof(book), 1, fp); /* legge un record da file e lo memorizza nella variabile b */ Esempio (con la stessa definizione di record di sopra): book biblioteca[100]; /* dichiarazione array di record */ fread(&biblioteca[20], sizeof(book), 5, fp); /* legge cinque record da file e li memorizza nel vettore biblioteca a partire dalla posizione 20 */ 8
9 Per scrivere un qualsiasi dato su file binario si usa l istruzione fwrite: fwrite(indirizzo RAM, numero byte, numero blocchi, indirizzo del file) Scrive su file uno o più blocchi di bit non formattati, prelevandoli dalla RAM a partire dall indirizzo specificato. Parametri: numero byte: numero di byte del blocco numero blocchi: numero di blocchi da scrivere. Restituisce il numero di blocchi scritti. int N; fwrite(&n,sizeof(int),1,fp); /* scrive su file l intero memorizzato nella variabile N*/ struct libro { /* definizione del record */ char titolo[20]; char autore[20]; int anno; char editore[20]; }; typedef struct libro book; /* definizione esplicita */ book b; /* dichiarazione variabile */ fwrite(&b, sizeof(book), 1, fp); /* scrive il record b su file */ Esempio (con la stessa definizione di record di sopra): book biblioteca[100]; /* dichiarazione array di record */ fwrite(&biblioteca[0], sizeof(book), 5, fp); /* scrive su file i primi cinque record dell array biblioteca */ 9
10 ACCESSO DIRETTO Per realizzare un archivio con accesso diretto dobbiamo usare i file binari. Il motivo, come già spiegato, sta nel fatto che la dimensione dei diversi record dell archivio è sempre la stessa nei file binari, mentre può variare nei file di testo. L accesso diretto si realizza utilizzando l istruzione fseek, che serve a spostare la testina di lettura/scrittura all interno del file. Basta spostare la testina all inizio del record al quale si vuole accedere (ad esempio, se si vuole leggere il 5 record, si salta in avanti di 4 record), e leggere il record con una fread. Per spostare la testina sul record al quale si vuole accedere si usa l istruzione fseek: fseek(indirizzo del file, num_byte, start); Sposta la testina di lettura/scrittura, sul file specificato, di num_byte a partire da start. Il terzo parametro, start, può valere: - SEEK_SET inizio del file - SEEK_CUR posizione corrente - SEEK_END fine del file Restituisce 1 in caso d errore, 0 se tutto OK, ma è solitamente usata come void. fseek(fp,10,seek_set); /* sposta la testina in avanti di 10 byte dall inizio del file */ Esempio (con la definizione del record book degli esempi precedenti): fseek(fp, 3*sizeof(book), SEEK_SET); /* sposta la testina all inizio del quarto record */ fseek(fp, -sizeof(book), SEEK_CUR); /* sposta la testina indietro di un record */ fseek(fp, -2*sizeof(book), SEEK_END); /* sposta la testina sul penultimo record dell archivio */ RICERCA DI UN RECORD IN UN ARCHIVIO Se si vuole cercare un particolare record in un archivio, occorre scorrere uno per uno tutti i record dell archivio. Per ognuno di questi, bisogna ripetere le seguenti operazioni: - leggere il record (portarlo in RAM) - controllare se è il record cercato. C è bisogno allora di un ciclo! In generale, non si può utilizzare il ciclo for perché non si conosce a priori il numero di record dell archivio. Ci viene però in aiuto l istruzione feof, che possiamo utilizzare per determinare il raggiungimento della fine del file. Per determinare se si è raggiunto la fine del file, si usa l istruzione feof: feof(indirizzo del file); Determina il raggiungimento della fine del file. Restituisce 1 se il file è terminato, 0 altrimenti. while (!feof(fp)) /* fino a che non è finito il file fp */ { fread( ) /* leggi un record dal file */ if ( ) /* controlla se è il record cercato */ } 10
ARCHIVI E FILE ARCHIVI FILE. Istituto Angioy Informatica. Prof. Ciaschetti
Istituto Angioy Informatica ARCHIVI E FILE Prof. Ciaschetti ARCHIVI Un archivio è un insieme di registrazioni (record) memorizzate in modo persistente, su un qualunque tipo di supporto. La caratteristica
DettagliFondamenti di Informatica
Cosa sono i file? Un file è un archivio di dati che puo essere registrato su un supporto di massa (testo, lettera, programma, archivio di dati, ecc.) Fondamenti di Informatica 12. Linguaggio C - Gestione
DettagliIntroduzione. L elaborazione dei files in C. Elaborazione dei files (1) Elaborazione dei files (2) D.D. cap. 11+ pp K.P. pp.
Introduzione L elaborazione dei files in C D.D. cap. 11+ pp. 569-572 K.P. pp. 581-583 La memorizzazione dei dati nelle variabili e nei vettori è temporanea: tutti quei dati andranno persi quando il programma
DettagliLinguaggio C: i file
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: i file La presente dispensa e da utilizzarsi ai soli fini didattici previa
DettagliGestione dei File in C
Gestione dei File in C Maurizio Palesi DIIT Università di Catania Viale Andrea Doria 6, 95125 Catania mpalesi@diit.unict.it http://www.diit.unict.it/users/mpalesi Sommario In questo documento saranno introdotte
DettagliDIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA. INFORMATICA B Ingegneria Elettrica. I file in Matlab
INFORMATICA B Ingegneria Elettrica I file in Matlab I file I file sono contenitori di informazione: sequenze di byte associate ad un nome Sono memorizzati su memoria di massa (non- volatile) Possono continuare
DettagliGestione dei file. Linguaggio ANSI C Input/Output - 13
Gestione dei file Necessità di persistenza dei file archiviare i file su memoria di massa. Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni
DettagliFILE BINARI FILE BINARI
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
DettagliInput/output da file I/O ANSI e I/O UNIX FLUSSI E FILE FLUSSI FLUSSI di TESTO FLUSSI BINARI FILE
Input/output da file Il linguaggio C non contiene istruzioni di I/O, in quanto tali operazioni vengono eseguite tramite funzioni di libreria standard. Questo approccio rende estremamente flessibile e potente
DettagliGestione dei file. File di testo e binari
Gestione dei file Un file e definito come un oggetto, presente nel file system, costituito da una sequenza continua di bytes Un file, per poter essere utilizzato, deve essere aperto Successivamente e possibile
DettagliScrittura formattata - printf
Esercizi su Input/Output con formato FormattedIO 1 Scrittura formattata - printf Funzione printf int printf ( , ) La funzione restituisce un valore intero uguale ai caratteri
DettagliEsercizi. I File ed il C
Politecnico di Milano Esercizi File di testo,, file binari I File ed il C Insieme omogeneo di dati, memorizzato su disco e caratterizzato da un nome La lunghezza di un file non è fissata a priori Astrazione
DettagliIL CONCETTO DI FILE. È illecito operare oltre la fine del file.
IL CONCETTO DI FILE Un file è una astrazione fornita dal sistema operativo, il cui scopo è consentire la memorizzazione di informazioni su memoria di massa. Concettualmente, un file è una sequenza di registrazioni
DettagliGestione dei file. Stefano Ferrari. Università degli Studi di Milano Programmazione. anno accademico
Gestione dei file Stefano Ferrari Università degli Studi di Milano stefano.ferrari@unimi.it Programmazione anno accademico 2016 2017 Gli stream Si dice stream qualsiasi sorgente di dati in ingresso e qualsiasi
DettagliLE STRUTTURE DATI PARTE 2: RECORD. Prof. G. Ciaschetti
1 ISTITUTO DI ISTRUZIONE SUPERIORE ANGIOJ LE STRUTTURE DATI PARTE 2: RECORD Prof. G. Ciaschetti Abbiamo visto nella prima dispensa sulle strutture dati che una struttura dati è una collezione di dati in
DettagliSuggerimenti, note utili ed errori comuni. Fondamenti di informatica T
Suggerimenti, note utili ed errori comuni Fondamenti di informatica T printf, scanf e stringhe di formato La lettura e scrittura di variabili in formato testo sono realizzate tramite printf e scanf sfruttando
DettagliGestione dei File. dischi nastri cd
Gestione dei File Per mantenere disponibili i dati tra le diverse esecuzioni di un programma, questi si devono archiviare in file su memoria di massa (dati persistenti): dischi nastri cd Un file è un astrazione
DettagliFILE BINARI FILE BINARI
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
DettagliSono file di caratteri, organizzati in linee. Ogni linea e` terminata da una marca di fine linea (newline, cara ttere '\n').
I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale. Generalmente un
DettagliMATLAB: FILES. Informatica B/C - A.A. 2013/2014
MATLAB: FILES Informatica B/C - A.A. 2013/2014 I FILE Contenitori di informazione: sequenze di byte associate ad un nome Sono memorizzati su memoria di massa (non-volatile) Possono continuare ad esistere
DettagliI File. Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa.
I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa. Consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale. Generalmente un
DettagliFILE BINARI FILE BINARI FILE BINARI. OUTPUT BINARIO: fwrite()
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
DettagliIntroduzione al C. Unità 9 File. D. Bloisi, S. Peluso, A. Pennisi, S. Salza
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File D. Bloisi, S. Peluso, A. Pennisi, S. Salza Sommario Input/Output Stream
DettagliStruttura dati FILE. Concetto di FILE
Struttura dati FILE Concetto di FILE Per poter mantenere disponibili dei dati tra diverse esecuzioni di un programma (PERSISTENZA dei dati), è necessario poterli archiviare su memoria di massa. Un file
DettagliFILE: tipo operazione Istruì. prototipo esempi lettura di un carattere fgetc Int fgetc(file *flusso) Vedi sotto
FILE: tipo operazione Istruì. prototipo esempi lettura di un carattere fgetc Int fgetc(file *flusso) Vedi sotto alla volta Scrittura di un fputc Int fputc(int ch, FILE *flusso); carattere alla volta Lettura
DettagliFile binari, Operazioni sui File binari, Allocazione dinamica della memoria
File binari, Operazioni sui File binari, Allocazione dinamica della memoria Vitoantonio Bevilacqua bevilacqua@poliba.it Parole chiave: File binari, Funzioni principali file binari, Funzione malloc, Allocazione
DettagliIntroduzione al C. Stream e disk file
Introduzione al C Stream e disk file Stream Un canale è una sequenza di byte di dati Sorgente o destinazione di dati che possono essere associati ad un disco o ad altre periferiche Due tipi di stream:
DettagliGestione dei File C. Generalità
Gestione dei File C 1 Generalità Il linguaggio C non contiene alcuna istruzione di Input/Output. Tali operazioni vengono svolte mediante chiamate a funzioni definite nella libreria standard contenute nel
DettagliFILE BINARI. I file di testo non sono indispensabili: sono semplicemente comodi 1
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni di
DettagliInput/output in C e in C++
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Input/output in C e in C++ 2001 Pier Luca Montessoro - Davide Pierattoni
DettagliFondamenti di Informatica T. Linguaggio C: File
Linguaggio C: File I File Il file e` l'unita` logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati, non limitata dalle dimensioni della memoria centrale.
DettagliFondamenti di Informatica
Fondamenti di Informatica Gestione dei File in MATLAB Prof. Christian Esposito Corso di Laurea in Ingegneria Meccanica e Gestionale (Classe I) A.A. 2016/17 Gestione dei file in MATLAB OUTLINE Caratteristiche
DettagliStruttura a record. File ad accesso diretto. Modalità di apertura. Modalità di apertura
Struttura a record 2 File ad accesso diretto Il file è organizzato in record aventi tutti la stessa struttura e quindi dimensione record 0 record 1 record 2 Ver. 2.4 2010 - Claudio Fornaro - Corso di programmazione
DettagliI file possono essere manipolati (aperti, letti, scritti ) all interno di programmi C. dischi nastri cd
Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persistenza dei dati) è necessario poterli archiviare su memoria di massa. dischi nastri cd GESTIONE DEI FILE I file possono
DettagliGestione di files Motivazioni
Gestione di files Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera) il programma in esecuzione scrive (sequenzialmente)
DettagliLe Memorie. Si distinguono per: Supporti sui quali le informazioni vengono fisicamente memorizzate.
Le Memorie Supporti sui quali le informazioni vengono fisicamente memorizzate. Si distinguono per: Velocità Costo per bit Tipo di accesso Accesso a byte o blocchi di byte Volatilità Parte I 15 Due Tipi
DettagliRappresentazione binaria delle variabili (int e char)
Rappresentazione binaria delle variabili (int e char) int e char son i due tipi utilizzati dal linguaggio C per la rappresentazione di valori interi; ai valori delle variabili del primo tipo sono assegnati
DettagliIl linguaggio C. Notate che...
Il linguaggio C Notate che... 1 Il C è un linguaggio a blocchi int main (void) { blocco } 2 Il C è un linguaggio a blocchi (2) Non è possibile mischiare dichiarazioni e comandi! int main (void) { } Dichiarazione
DettagliLA MEMORIA NEL CALCOLATORE
Tipi di memorie (1) Rappresenta il supporto fisico, il dispositivo su cui sono immagazzinate le informazioni (dati e programmi) ROM (Read Only Memory) 1-2 MByte Cache 1 MByte di sola lettura contiene programmi
DettagliLinguaggio C Gestione File
Gestione File: Il file è l'unità logica di memorizzazione dei dati su memoria di massa, che consente una memorizzazione persistente dei dati non limitata dalle dimensioni della memoria centrale. Nel linguaggio
DettagliStrutture Dati. Elisa Marengo. Università degli Studi di Torino Dipartimento di Informatica. Elisa Marengo (UNITO) Strutture Dati 1 / 16
Strutture Dati Elisa Marengo Università degli Studi di Torino Dipartimento di Informatica Elisa Marengo (UNITO) Strutture Dati 1 / 16 Introduzione Fino ad ora nei nostri programmi abbiamo usato Variabili;
DettagliCapitolo 11 Elaborazione di file
1 Capitolo 11 Elaborazione di file 11.1 Introduzione 2 I file Possono essere creati, modificati, ed elaborati da programmi scritti in C Sono utilizzati per la memorizzazione permanente dei dati La memorizzazione
DettagliLP1 Lezione 13: i File in C. Maurizio Tucci
LP1 Lezione 13: i File in C Maurizio Tucci mtucci@unisa.it 1 Il File: Dichiarazione Memorizzare dati in maniera non volatile In C (libreria ) è definito un tipo FILE che astrae il concetto di sequenza
DettagliI file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002
I file Laboratorio di Linguaggi di Programmazione a.a. 2001/2002 dott.ssa Francesca A. Lisi lisi@di.uniba.it Sommario Generalità sui file in C I file ad accesso sequenziale I file di testo Riferimenti
DettagliLettura da tastiera e scrittura su monitor
Lettura da tastiera e scrittura su monitor Per poter leggere UN SINGOLO CARATTERE dalla tastiera e visualizzare UN SINGOLO CARATTERE sul monitor si possono utilizzare le funzioni: int getchar (void) (per
DettagliPrimi passi col linguaggio C
Andrea Marin Università Ca Foscari Venezia Laurea in Informatica Corso di Programmazione part-time a.a. 2011/2012 Come introdurre un linguaggio di programmazione? Obiettivi: Introduciamo una macchina astratta
DettagliMicrosoft Outlook Di Nunziante Esposito. `*************` Quinta parte: Come gestire la rubrica (contatti). `***********`
Microsoft Outlook 2007. Di Nunziante Esposito. `*************` Quinta parte: Come gestire la rubrica (contatti). `***********` Dopo aver preparato al meglio il layout del browser ed aver impostato un account
DettagliAPPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO VI.2015
APPELLO SCRITTO DI PROGRAMMAZIONE 1 CORSO DI LAUREA IN MATEMATICA UNIVERSITÀ DEGLI STUDI DI MILANO 2014 2015 15.VI.2015 VINCENZO MARRA Indice Esercizio 1 1 Definizione dei tipi P e T, e calcolo dell area.
DettagliGESTIONE DEI FILE IN C
GESTIONE DEI FILE IN C Il concetto di file.. è una parte logicamente contigua del contenuto di un dispositivo! Deve essere capace di memorizzare grandi quantità di dati! I dati memorizzati devono sopravvivere
DettagliIntroduzione ai puntatori in C Definizione
Introduzione ai puntatori in C Definizione Un puntatore è una variabile che contiene l indirizzo di un altra variabile Tramite i puntatori si può quindi accedere a un oggetto indirettamente (si usa il
DettagliFiles in C++ Fondamenti di Informatica. R. Basili. a.a. 2006-2007
Files in C++ Fondamenti di Informatica R. Basili a.a. 2006-2007 Sintesi Motivazioni Definizione di file in C++ Un esempio Uso dei file Esempi Esercizi Motivazioni il programma in esecuzione legge (sequenzialmente)
DettagliTipi di dati strutturati e Linguaggio C. Record o strutture Il costruttore struct in C
Tipi di dati strutturati e Linguaggio C Record o strutture Il costruttore struct in C Dati strutturati Record Un record o struttura è una struttura dati ottenuta aggregando elementi di tipo diverso che
DettagliI file. un file è una sorgente/destinazione di dati per diversi attori
I file Il file è un astrazione molto ampia nella descrizione di un sistema informatico: Il concetto di file è uno snodo fondamentale di flussi di informazione anche tra applicazioni diverse un file è una
DettagliVariabili e Istruzioni
Exit Menù Variabili e Istruzioni 1 Le Variabili Una VARIABILE è un oggetto identificato da un NOME e da uno STATO, detto CONTENUTO o VALORE. Possiamo immaginarla come una scatola contenuto Pippo 11 nome
DettagliLIBRERIE STANDARD in C. LIBRERIE STANDARD in C
LIBRERIE STANDARD in C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria, non occorre inserirla esplicitamente nel progetto: ogni ambiente di sviluppo sa già dove cercarle
DettagliLa codifica digitale
La codifica digitale Codifica digitale Il computer e il sistema binario Il computer elabora esclusivamente numeri. Ogni immagine, ogni suono, ogni informazione per essere compresa e rielaborata dal calcolatore
Dettagli2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.
Tipo File Per memorizzare un dato su un supporto magnetico come un hard disk o un nastro, o più in generale su un'unità di memoria di massa viene utilizzata un tipo di dato chiamato file. Un file può essere
DettagliOTTAVA ESPERIENZA DI LABORATORIO. L elaborazione dei files in C
CORSO DI LABORATORIO DI INFORMATICA CORSO DI LAUREA IN SDM ANNO ACCADEMICO 2011-2012 Docente: R. Sparvoli Esercitazioni: R. Sparvoli, F. Palma OTTAVA ESPERIENZA DI LABORATORIO L elaborazione dei files
DettagliVettori di caratteri. Caratteri e stringhe. Stringhe in C. Vettori di caratteri. char saluto[10] ; B u o n g i o r n o 4. Esempio.
Vettori di caratteri Il tipo stringa Terminatore nullo Input/output di stringhe Caratteri e stringhe 2 Stringhe in C Vettori di caratteri Nel linguaggio C non è supportato esplicitamente alcun tipo di
DettagliInformatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE. Francesco Tura. F. Tura
Informatica ALGORITMI E LINGUAGGI DI PROGRAMMAZIONE Francesco Tura francesco.tura@unibo.it 1 Lo strumento dell informatico: ELABORATORE ELETTRONICO [= calcolatore = computer] Macchina multifunzionale Macchina
DettagliEsercizio 1 Liste: calcolo perimetro di un poligono
Esercitazione Fondamenti di Informatica B Corso di Laurea in Ingegneria Meccanica 12 Esercitazione: 28 gennaio 2005 Esercizi su liste, ricorsione, file. Scaletta Esercizio 1 Liste: calcolo perimetro di
DettagliInformatica giuridica
Informatica giuridica Corso di laurea in Scienze dei Servizi giuridici Corso di laurea magistrale in Giurisprudenza A.A. 2015/16 L architettura hardware degli elaboratori La scheda madre Memoria principale
DettagliMATLAB I/O. Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA
MATLAB I/O Informatica B - A.A. 2012/2013 ACQUISIZIONE DI INPUT DA TASTIERA Funzione input valore = input( inserisci un valore ); Matlab stampa a video la stringa inserisci un valore ed aspetta di ricevere
DettagliLinguaggio C: puntatori
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica A - GES Prof. Plebani A.A. 2006/2007 Linguaggio C: puntatori La presente dispensa e da utilizzarsi ai soli fini didattici previa
DettagliFormattazione avanzata. I/O Avanzato e File. Formattazione dell output. Formattazione avanzata. Forma completa degli specificatori
Formattazione avanzata Modificatori di o in output Modificatori di o in input Stream predefiniti I/O Avanzato e File 2 Formattazione dell output Formattazione avanzata L output (su schermo o su file) viene
DettagliStringhe e allocazione dinamica della memoria
Stringhe e allocazione dinamica della memoria Esercizio Scrivere un programma strings.c che legge da standard input una sequenza di parole separate da uno o più spazi, e stampa le parole lette, una per
DettagliLezione 8. Sottoprogrammi
Lezione 8 Il linguaggio C: Sottoprogrammi e Funzioni I puntatori Input/Output su file Sottoprogrammi Per risolvere un problema si può scomporlo in problemi più semplici e comporre le loro soluzioni in
DettagliFILE BINARI. I file di testo non sono indispensabili: sono semplicemente comodi!
FILE BINARI Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare. È un'astrazione di memorizzazione assolutamente generale, usabile per memorizzare su file informazioni
DettagliELEMENTI DI INFORMATICA L-B. Ing. Claudia Chiusoli
ELEMENTI DI INFORMATICA L-B Ing. Claudia Chiusoli Materiale Lucidi delle lezioni Date degli appelli Testi di esami precedenti Informazioni e contatti http://www.lia.deis.unibo.it/courses/ Programma del
DettagliEsercizio 2 (punti 7) Dato il seguente programma C: #include <stdio.h> int swap(int * nome, int length);
Fondamenti di Informatica L-A (A.A. 004/005) - Ingegneria Informatica Prof.ssa Mello & Prof. Bellavista I Prova Intermedia del 11/11/004 - durata h - COMPITO B Esercizio 1 (punti 1) Una associazione di
Dettaglicaratteri, immagini, suoni, ecc.
Il linguaggio C Input e output I flussi di I/O L uso di buffer Apertura e chiusura di file Lettura e scrittura di dati La selezione di un metodo di I/O I/O non bufferizzato L accesso diretto a file Input
DettagliCaratteri e stringhe
Caratteri e stringhe Caratteri Dato che un computer può memorizzare esclusivamente sequenze di bit, per memorizzare un carattere (e quindi testi) è necessario stabilire una convenzione che associa a un
DettagliDOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII
Gestione dei files DOTT. ING. LEONARDO RIGUTINI DIPARTIMENTO INGEGNERIA DELL INFORMAZIONE UNIVERSITÀ DI SIENA VIA ROMA 56 53100 SIENA UFF. 0577234850-7102 RIGUTINI@DII.UNISI.IT HTTP://WWW.DII.UNISI.IT/~RIGUTINI/
DettagliEsercizi di programmazione in linguaggio C English Dictionary
Esercizi di programmazione in linguaggio C English Dictionary Il file di testo wordnet.txt contiene un certo numero di parole (word) e il corrispondente significato (meaning) secondo il seguente formato:
DettagliCorso di Informatica
Corso di Informatica Modulo T2 3-La memoria 1 Prerequisiti Concetto di memoria Dati e istruzioni Bit e byte 2 1 Introduzione In questa Unità studiamo più in dettaglio la memoria del computer e le sue funzioni.
DettagliLaboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011
Laboratorio di Informatica Ingegneria Clinica Lezione 14-16/11/2011 Raffaele Nicolussi FUB - Fondazione Ugo Bordoni Via del Policlinico, 147 00161 Roma I puntatori Variabili e parametri Parametri formali
DettagliLinguaggio C - sezione dichiarativa: costanti e variabili
Dipartimento di Elettronica ed Informazione Politecnico di Milano Informatica e CAD (c.i.) - ICA Prof. Pierluigi Plebani A.A. 2008/2009 Linguaggio C - sezione dichiarativa: costanti e variabili La presente
DettagliCorso sul linguaggio Java
Corso sul linguaggio Java Modulo JAVA6 A1 I file testo 1 Prerequisiti Programmazione base in Java Utilizzo di classi e oggetti Modello produttore consumatore Operazioni logiche su struttura file 2 1 Introduzione
DettagliCaratteri e stringhe
Caratteri e stringhe Vettori di caratteri Il tipo stringa Terminatore nullo Input/output di stringhe 2 Vettori di caratteri Stringhe in C Nel linguaggio C non è supportato esplicitamente alcun tipo di
DettagliFunzioni matlab per la gestione dei file. Informatica B Prof. Morzenti
Funzioni matlab per la gestione dei file Informatica B Prof. Morzenti File Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare a esistere indipendentemente dalla
DettagliCaratteri e stringhe. Vettori di caratteri. Il tipo stringa Terminatore nullo Input/output di stringhe Politecnico di Torino 1
Caratteri e stringhe Il tipo stringa Terminatore nullo Input/output di stringhe 2 2006 Politecnico di Torino 1 Stringhe in C Nel linguaggio C non è supportato esplicitamente alcun tipo di dato stringa
DettagliI puntatori. Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore
I puntatori Un puntatore è una variabile che contiene l indirizzo di un altra variabile. puntatore...... L operatore & fornisce l indirizzo di un oggetto: p = &c; assegna a p l indirizzo di c, i.e., p
DettagliStrutture dati e loro organizzazione. Gabriella Trucco
Strutture dati e loro organizzazione Gabriella Trucco Introduzione I linguaggi di programmazione di alto livello consentono di far riferimento a posizioni nella memoria principale tramite nomi descrittivi
DettagliL accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione.
I file L accesso ai dispositivi esterni (tastiera, monitor, file,...) viene gestito mediante canali di comunicazione. I canali, sono delle strutture dati che contengono informazioni sul dispositivo fisico,
DettagliMatlab: Gestione avanzata dei file
Matlab: Gestione avanzata dei file Informatica B File 2 Contenitori di informazione permanenti Sono memorizzati su memoria di massa Possono continuare ad esistere indipendentemente dalla vita del programma
DettagliMini-dispensa sui puntatori in C
Mini-dispensa sui puntatori in C P. Zavarise Versione 1 ottobre 013 1 Valore e indirizzo di una variabile Ripassiamo il significato di dal punto di vista del programmatore. int a=; Viene creata una variabile
Dettagli(1) (2) (3) (4) 11 nessuno/a 9 10. (1) (2) (3) (4) X è il minore tra A e B nessuno/a X è sempre uguale ad A X è il maggiore tra A e B
Compito: Domanda 1 Per l'algoritmo fornito di seguito, qual è il valore assunto dalla variabile contatore quando l'algoritmo termina: Passo 1 Poni il valore di contatore a 1 Passo 2 Ripeti i passi da 3
DettagliLab 10 Gestione file di testo
Fondamenti di Informatica e Laboratorio T-AB Ingegneria Elettronica e Telecomunicazioni Lab 10 Gestione file di testo Lab15 1 Esercizio 1 n Realizzare un programma che, aperto un file di testo di nome
Dettaglipuntatori Lab. Calc. AA 2007/08 1
puntatori Lab. Calc. AA 2007/08 1 parametri delle funzioni (dalla lezione scorsa) gli argomenti in C vengono passati by value dalla funzione chiamante alla funzione chiamata la lista degli argomenti viene
DettagliSOMMARIO SU LETTURA E SCRITTURA (I/O) DEGLI STANDARD FILES
SOMMARIO SU LETTURA E SCRITTURA (I/O) DEGLI STANDARD FILES Con conversione di formato: int scanf (const char *format,... ) /* ritorna il numero di argomenti assegnati con successo altrimenti EOF se fine
DettagliErrori frequenti Cicli iterativi Array. Cicli e array. Laboratorio di Programmazione I. Corso di Laurea in Informatica A.A.
Cicli e array Laboratorio di Programmazione I Corso di Laurea in Informatica A.A. 2016/2017 Calendario delle lezioni Lez. 1 Lez. 2 Lez. 3 Lez. 4 Lez. 5 Lez. 6 Lez. 7 Lez. 8 - Introduzione all ambiente
DettagliUtilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali:
1 Tipi di dati 1 Tipi di dati Utilizza i tipi di dati comuni a tutto il framework.net Accesso nativo ai tipi.net (C# è nato con.net) Concetti fondamentali: Tutto è un oggetto Tutto eredita implicitamente
DettagliPuntatori. Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori
Puntatori Obiettivi: Richiamare quanto noto sui puntatori dal modulo A Presentare l analogia tra puntatori e vettori e l aritmetica dei puntatori 1 Il puntatore Un tipo puntatore è un tipo scalare per
DettagliCorso sul linguaggio C Modulo Tipi di dato
Corso sul linguaggio C Modulo 1 1.3 - Tipi di dato 1 Prerequisiti Concetto di espressione Cenni sulla struttura del calcolatore 2 1 Introduzione In questa lezione si esaminano i tipi di dato. I tipi di
DettagliModulo 1. Concetti base della Tecnologia dell informazione. Prof. Nicolello Cristiano. Modulo 1
Concetti base della Tecnologia dell informazione Algoritmi Come interpreta un computer un problema? Algoritmi Algoritmo: sequenza ordinata di istruzioni per risolvere un problema (tradotto: sequenza di
DettagliLaboratorio di Algoritmi e Strutture Dati
Laboratorio di Algoritmi e Strutture Dati Docente: Camillo Fiorentini 16 ottobre 2007 1 Rappresentazioni di caratteri in C In C un carattere è una costante intera il cui valore è dato dal codice ASCII
DettagliINDICI PER FILE. Accesso secondario. Strutture ausiliarie di accesso
INDICI PER FILE Strutture ausiliarie di accesso 2 Accesso secondario Diamo per scontato che esista già un file con una certa organizzazione primaria con dati non ordinati, ordinati o organizzati secondo
DettagliUnità Didattica 5 Linguaggio C. Stringhe. Accesso a file ASCII. Strutture.
Unità Didattica 5 Linguaggio C Stringhe. Accesso a file ASCII. Strutture. 1 Stringhe Una stringa è una sequenza di caratteri (es: ciao, sd!n29dnqa ); In C non esiste una variabile di tipo stringa; Una
DettagliDescrizione delle operazioni di calcolo. Espressioni costanti semplici
Descrizione delle operazioni di calcolo Come abbiamo detto l interprete è in grado di generare nuovi valori a partire da valori precedentemente acquisiti o generati. Il linguaggio di programmazione permette
Dettagli