I file di dati. Unità didattica D1 1
|
|
- Lia Fiorini
- 5 anni fa
- Visualizzazioni
Transcript
1 I file di dati Unità didattica D1 1
2 1) I file sequenziali Utili per la memorizzazione di informazioni testuali o binarie Noi ci occuperemo di file contenenti informazioni testuali In fondo ad un file sequenziale vi è sempre posizionato un carattere speciale di fine file EOF Non sono adatte per grandi quantità di dati per il dilatarsi dei tempi d accesso alle singole informazioni Unità didattica D1 2
3 1.1 Apertura e chiusura di file sequenziali Prima di poter effettuare qualsiasi operazione sui file è necessario aprire il file Al termine del suo utilizzo è necessario chiudere il file Apertura file: Un file sequenziale può essere aperto in vari modi possibili: r Solo lettura - se il file al momento dell apertura non esiste allora la funzione di apertura in r restituisce NULL w Solo scrittura - se il file al momento dell apertura non esiste allora sarà automaticamente creato - se il file al momento dell apertura esiste allora il contenuto del file preesistente andrà perso Unità didattica D1 3
4 1.1 Apertura e chiusura di file sequenziali Apertura file: r+ Lettura e Scrittura - se il file al momento dell apertura non esiste allora la funzione di apertura in r+ restituisce NULL w+ Lettura e Scrittura - se il file al momento dell apertura non esiste allora sarà automaticamente creato - se il file al momento dell apertura esiste allora il contenuto del file preesistente andrà perso a Append (sul file sarà possibile scrivere in fondo al file) - se il file al momento dell apertura non esiste allora sarà automaticamente creato - se il file al momento dell apertura esiste allora il contenuto del file preesistente rimarrà invariato a+ Lettura ed Append (sul file sarà possibile eseguire sia operazioni di lettura che di scrittura) - se il file al momento dell apertura non esiste allora sarà automaticamente creato - se il file al momento dell apertura esiste allora il contenuto del file preesistente rimarrà invariato Unità didattica D1 4
5 1.1) Apertura e chiusura di file sequenziali Sintassi per apertura file: <Identificatore>=fopen(<NomeFile>, <modalità>) <Identificatore> Variabile puntatore di tipo FILE detto file pointer,all interno del programma il programmatore deve usare il fiele pointer per accedere al file. <NomeFile> Stringa contenente il nome del file compreso il path (prova.txt;../prova.txt; c:/.../prova.txt; Dati/prova.txt) <Modalità> Uno dei modi visti in precedenza Nota: nel programma deve essere incluso stdio.h Unità didattica D1 5
6 1.1) Apertura e chiusura di file sequenziali Esempio di apertura: //Esempio di apertura di un file in sola lettura #include <stdio.h> void main () { FILE *fp; fp=fopen ("carattere.txt","r");.. //Esempio di apertura di un file in append #include <stdio.h> void main () { FILE *fp; fp=fopen ("../prova.txt", a");.. Unità didattica D1 6
7 1.1) Apertura e chiusura di file sequenziali Sintassi per chiusura file: fclose (<Identificatore>) <Identificatore> nome della variabile file pointer usato in apertura Esempio di chiusura: //Esempio di apertura di un file in sola lettura e successiva chiusura #include <stdio.h> void main () { FILE *fp; fp=fopen ("carattere.txt","r");.. fclose (fp).. Unità didattica D1 7
8 1.2) Operazione di lettura e scrittura di singoli caratteri su un file sequenziale Scrittura carattere su file E possibile operare in scrittura singoli caratteri su di un file precedentemente aperto utilizzando la seguente procedura: fputc(<carattere>, <Identificatore>) Nota: Tutti i caratteri che aggiungiamo successivamente in scrittura si accodano ai caratteri eventualmente già scritti. Lettura carattere da file E possibile operare in lettura singoli caratteri su di un file precedentemente aperto utilizzando la seguente funzione: <carattere> = fgetc(<identificatore>) Nota: Tutti i caratteri che leggiamo successivamente saranno quelli successivi al carattere appena letto. Vedi Esempio: Lettura e Scrittura Caratteri Unità didattica D1 8
9 1.3) Operazione di lettura e scrittura di stringhe su un file sequenziale Scrittura stringhe su file E possibile operare in scrittura singole stringhe su di un file precedentemente aperto utilizzando la seguente procedura: fputs(<stringa>, <Identificatore>) Nota: Tutti le stringhe che aggiungiamo successivamente in scrittura si accodano alle stringhe eventualmente già scritte. Lettura stringhe da file E possibile operare in lettura singole stringhe su di un file precedentemente aperto utilizzando la seguente procedura: fgets (<stringa>, <n caratteri>, <Identificatore>) n caratteri rappresenta il numero di caratteri-1 che si vuole leggere dal file (si deve tener conto del fine stringa, 1 carattere). Nota1: Tutte le stringhe che leggiamo successivamente saranno quelle successive alla stringa effettivamente appena letta. Nota2: Se compare un fine riga allora viene troncata l eventuale lettura della stringa alla lunghezza della riga. Vedi Esempio: Lettura e Scrittura Stringhe Unità didattica D1 9
10 1.4) I file con dati a blocco, accesso casuale (random) I file di questo tipo sono costituiti da un numero variabile di record accodati Si può immaginare di avere un archivio di schede ognuna delle quali rappresenta un record Unità didattica D1 10
11 1.4.1) Richiamo delle strutture Record Come già visto, i Record ci consentono di confluire sotto un unico nome dati non omogenei (di tipo diverso) Esempi: Dipendente Nome (stringa) Cognome (stringa) Livello (intero) Stipendio (float) Alunno Nome (stringa) Cognome (stringa) Classe (stringa) Matricola (intero) Unità didattica D1 11
12 1.4.1) Richiamo delle strutture Record Si ricorda che per dichiarare un nuovo tipo struttura si utilizza la seguente sintassi: struct <NomeStruttura> { <TipoCampo1> <NomeCampo1>; <TipoCampo2> <NomeCampo2>; <TipoCampoN> <NomeCampoN>; }; Unità didattica D1 12
13 1.4.1) Richiamo delle strutture Record Esempi: struct Studente { char nome[20]; char cognome[20]; char DataNascita[10]; int matricola; char sesso; }; struct Auto { char marca [20]; char modello[20]; int prezzo; int Anno_Imm; }; Note: Non è consentito l inizializzazione dei campi Non è consentito utilizzare un nome campo uguale al nome della struttura E consentito usare nomi campi uguali fra strutture diverse Si possono usare tipi di campo semplici o composti Unità didattica D1 13
14 1.4.1) Richiamo delle strutture Record Una volta creato un tipo struttura, è possibile dichiarare variabili del nuovo tipo definito utilizzando la normale sintassi di dichiarazione Esempio: Auto A1; Auto A2, A3; Per comodità è possibile creare un tipo e contestualmente dichiarare una o più variabili del tipo appena dichiarato Esempio: struct Studente { char nome[20]; char cognome[20]; char DataNascita[10]; int matricola; char sesso; } Alunno1, Alunno2, Alunno3; Unità didattica D1 14
15 1.4.1) Richiamo delle strutture Record In fase di dichiarazione delle variabili di tipo struttura, è possibile inizializzare i suoi campi Esempio: struct Studente { char nome[20]; char cognome[20]; char DataNascita[10]; int matricola; char sesso; } ; Studente Alunno1={ Marco, Rossi, ,2154, M }; Studente Alunno2={ Giulia, Marini, ,2158, F }; Unità didattica D1 15
16 1.4.1) Richiamo delle strutture Record Per riferirsi ad un particolare campo di una variabile di tipo struttura, si utilizza la notazione punto (.) <NomeVariabile>.<NomeCampo> Esempi: Alunno2.matricola=2157; strcpy(alunno3.nome, Matteo ); Alunno3.sesso= M X=A1.prezzo; A differenza degli Array, per le strutture è definito l operatore di assegnazione, pertanto è consentito eseguire la seguente assegnazione: Alunno=Alunno3; //Ho creato una copia dei dati relativi all alunno3 nella struttura della variabile Alunno //precedentemente dichiarate dello stesso tipo Studente Unità didattica D1 16
17 1.4.2) Richiamo delle strutture Array di Record: le Tabelle E possibile creare strutture dati più complesse mettendo insieme array e strutture. Se consideriamo un array di record otterremo quella che viene chiamata tabella. Esempio: struct Auto { char marca [20]; char modello[20]; int prezzo; int Anno_Imm; }; Auto Concessionaria[10]; Unità didattica D1 17
18 1.4.2) Richiamo delle strutture Array di Record: le Tabelle Gli array di strutture prendono il nome di tabelle in quanto possono essere viste come strutture tabellari: Concessionaria marca modello prezzo Anno_Imm Unità didattica D1 18
19 1.4.3) I file con dati a blocco, accesso casuale (random) I file con dati a blocco sono da immaginare come grossi array di record, ogni record rappresenta un blocco all interno del file. La dimensione in byte del singolo record (come ogni tipo di dato) viene ricavata utilizzando la funzione sizeof() Esempio: sizeof(<struttura>); DimRecord=sizeof(Alunno3); Unità didattica D1 19
20 1.4.3) I file con dati a blocco, accesso casuale (random) char nome[20]; char cognome[20]; char DataNascita[10]; int matricola; char sesso; DimRecord = sizeof(alunno3) Otteniamo DimRecord = 60 byte (leggermente superiore alla somma dei byte occupati dai singoli campi) Se all interno del nostro file riponiamo 40 blocchi record di tipo Studente abbiamo una dimensione file pari a 40*60=2400byte=2,4Kbyte Unità didattica D1 20
21 1.4.3) I file con dati a blocco, accesso casuale (random) Analogamente a quanto avveniva per i file ad accesso sequenziale, anche per questi tipi di file l accesso avviene in modo sequenziale a meno di utilizzare opportune funzioni/procedure di posizionamento Procedura fseek() posiziona il file-pointer nella posizione desiderata al fine di coperare sul blocco voluto. fseek(<identificatore>, <Numero_byte>, <Modalità>) Identificatore file pointer Numero byte Numero byte di cui si vuole spostare il file-poiter Modalità 0 (spostamento dall inizio file) 1 (spostamento dalla posizione corrente) 2 (spostamento dalla fine del file) Unità didattica D1 21
22 1.4.3) I file con dati a blocco, accesso casuale (random) Funzione ftell() restituisce la posizioe corrente del file-pointer. ftell(<identificatore>) Identificatore file pointer Esempio: determina il numero di record (blocchi) presenti in un file contenente Studenti definiti secondo la struttura precedentemente indicata: fseek(fp, 0, 2); dim_file = ftell(fp); n_record = dim_file/dim_record; Vedi esempio: Dim_File_Classe.cpp Unità didattica D1 22
23 1.4.4) I file con dati a blocco, Lettura record L operazione di lettura di record viene effettuata tramite la funzione: N = fread(<ind_variabile>, <Dim_Blocco>, <Num_Blocchi>, <Identi.>) Ind_Variabile Dim_Blocco Num_Blocchi Identi. N Indirizzo della struttura dati che dovrà ospitare i blocchi che si vuole leggere. Esempi: &Alunno leggere un solo blocco record; Classe leggere più blocchi record da riporre in una struttura Array di Record (Classe[]); Dimensione in byte del singolo blocco (ricavabile con sizeof() ) Numero di Blocchi che si vogliono leggere (1 o più) File-Pointer del file sul quale si vuole operare in lettura Numero di Blocchi effettivamente letti Unità didattica D1 23
24 1.4.4) I file con dati a blocco, Lettura record Esempio di Lettura singolo record: fp = fopen ( "Classe4A.txt", "r" ); cout << "Inserire la matricola dello studente che si vuole visualizzare: "; cin >> mat; dim_record=sizeof(struct Studente); posizione = dim_record*(mat-1); //mi posiziono con il file-pointer prima del record da leggere fseek(fp,posizione, 0); //Leggo il record che mi interessa fread(&alunno, dim_record, 1, fp); fclose(fp); Vedi codice esempio: Lettura_Studente.cpp Unità didattica D1 24
25 1.4.4) I file con dati a blocco, Lettura record Esempio di Lettura dell intero file: Studente Classe [50]; dim_record=sizeof(struct Studente); fp = fopen ( "Classe4A.txt", "r" ); //determino il numero di record presenti nel file fseek(fp, 0, 2); dim_file = ftell(fp); n_record = dim_file/dim_record; //mi riposiziono all'inizio del file fseek(fp, 0, 0); //leggo l intero file e ripongo i record nella prima parte del vettore Classe[] N = fread(classe, dim_record, n_record, fp); cout << "Sono stati letti: " << N << " byte dal file" << endl; fclose (fp); Vedi codice esempio: Lettura Intero file.cpp Unità didattica D1 25
26 1.4.5) I file con dati a blocco, Scrittura record L operazione di scrittura di record viene effettuata tramite la funzione: N = fwrite(<ind_variabile>, <Dim_Blocco>, <Num_Blocchi>, <Identi.>) Ind_Variabile Dim_Blocco Num_Blocchi Identi. N Indirizzo della struttura da cui attingere i blocchi che si vuole scrivere Esempi: &Alunno scrive un solo blocco record; Classe scrive più blocchi record da prelevare da una struttura Array di Record (Classe[]); Dimensione in byte del singolo blocco (ricavabile con sizeof() ) Numero di Blocchi che si vogliono scrivere (1 o più) File-Pointer del file sul quale si vuole operare in scrittura Numero di Blocchi effettivamente scritti Unità didattica D1 26
27 1.4.5) I file con dati a blocco, Scrittura record Esempio di scrittura singolo record: Studente Alunno; fp = fopen ( "Classe4A.txt", "a" ); dim_record=sizeof(alunno); //acquisizione dei dati di un singolo studente cout << "Inserire il Nome: "; cin >> Alunno.nome; cout << "Inserire il Cognome: "; cin >> Alunno.cognome; cout << "Inserire la data di Nascita: "; cin >> Alunno.DataNascita; cout << "Inserire la matricola: "; cin >> Alunno.matricola; cout << "Inserire il Sesso: "; cin >> Alunno.sesso; cout << endl; // accodo il record dello studente nel file Classe4A.txt N = fwrite (&Alunno, dim_record, 1, fp ); cout << "Sono stati scritti: " << N << " studenti nel file" <<endl; fclose (fp); Vedi codice esempio: Scrittura_Studente.cpp Unità didattica D1 27
28 1.4.6) Operazione di lettura e scrittura di dati semplici (non record) Lettura di dati semplici da file E possibile operare in lettura più dati omogenei semplici analogamente a quanto già fatto per la lettura di dati strutture. Esempio 1: Esempio 2: char Vettore [150]; fp = fopen ( "testo.txt", "r" ); //Leggo 10 catatteri dal file (ogni carattere 1 byte) N = fread (Vettore, 1, 10, fp ); int Vettore [150]; fp = fopen ( "Numeri.dat", "r" ); //Leggo 10 numeri interi dal file N = fread (Vettore, sizeof(int), 10, fp ); for (i=0; i<10; i++) cout << Vettore[i] << endl; Vedi Esempio: Lettura_Dati_Semplici.cpp; LetturaNumeri.cpp; Unità didattica D1 28
29 1.4.6) Operazione di lettura e scrittura di dati semplici (non record) Scrittura di dati semplici da file E possibile operare in scrittura più dati omogenei semplici analogamente a quanto già fatto per la scrittura di dati strutture. Esempio 1: Esempio 2: char Vettore [150] = {"Inviato: soluzione Titolo: soluzione "} fp = fopen ( "testo.txt", "w" ); dim_elem = sizeof(vettore[0]); N = fwrite (Vettore, dim_elem, 36, fp ); fclose (fp); int Vettore [150] = {23, 46, 34, 12, 890, 2345, 234, 345, 32, 12}; fp = fopen ( "Numeri.dat", "w" ); dim_elem = sizeof(int); // OPPURE: dim_elem = sizeof(vettore[0]); N = fwrite (Vettore, dim_elem, 10, fp ); cout << "Sono stati scritti: " << N << " elementi"; fclose (fp); Vedi Esempio: Scrittura_Dati_Semplici.cpp; ScritturaNumeri.cpp; Unità didattica D1 29
30 1.5) La cancellazione logica e la cancellazione fisica All interno di un file random, i record non possono essere cancellati fisicamente a meno di ricopiare l intero file in un nuovo file escludendo i record che si vogliono cancellare fisicamente. Si ricorre quindi all artificio di effettuare una cancellazione logica dei record che non interessano e successivamente si effettua una cancellazione fisica con la tecnica della riscrittura di un nuovo file. Unità didattica D1 30
31 1.5) La cancellazione logica e la cancellazione fisica Cancellazione Logica: Nella definizione del record da usare, viene inserito un campo Cancellato ad esempio di tipo booleano usato per contrassegnare i record che si vogliono cancellare logicamente pur lasciandoli all interno del file. Il programma sarà scritto in modo tale da considerare: cancellati tutti i file che conterranno il campo Cancellato a True (1) non cancellati i record che conterranno il campo Cancellato a False. (0) Unità didattica D1 31
32 1.5) La cancellazione logica e la cancellazione fisica Esempio: struct Studente { char nome[20]; char cognome[20]; char DataNascita[10]; int matricola; char sesso; int Cancellato; } Alunno; dim_record=sizeof(struct Studente); posizione = dim_record*(12-1) //mi posiziono con il file-pointer prima del record 12 da leggere fp = fopen ( "Classe4A.txt", "r" ); fseek(fp,posizione, 0); fread(&alunno, dim_record, 1, fp); //Leggo il record che mi interessa fclose(fp); Alunno.Cancellato=1; fp = fopen ( "Classe4A.txt", w" ); fseek(fp,posizione, 0); fwrite(&alunno, dim_record, 1, fp); fclose(fp); Si è operata la cancellazione logica dello studente posto nella posizione 12 all interno del file (senza eliminarlo fisicamente) Unità didattica D1 32
Gestione dei files. Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132
Gestione dei files Prof. Francesco Accarino IIS Altiero Spinelli Sesto San Giovanni Via Leopardi 132 Struttura del disco fisso Un disco fisso è composto da una serie di piatti sovrapposti Ogni piatto è
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
DettagliLaboratorio di Programmazione
Laboratorio di Programmazione (Laurea triennale in matematica) Lezione 26 Sommario: Gestione dei file in C. File ad accesso sequenziale: apertura, chiusura, lettura e scrittura. File binari. Gestione files
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 6 Marzo 2016
File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 6 Marzo 2016 Obiettivi Il salvataggio dei dati File File e OS File in C 2 3 I programmi che abbiamo considerato finora. Perdono
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 21 Maggio 2014
File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 21 Maggio 2014 Obiettivi Il salvataggio dei dati File File e OS File in C 2 3 I programmi che abbiamo considerato finora. Perdono
DettagliI files (archivi) Il C definisce in stdio.h tre file aperti automaticamente: stdin, stdout e stderr.! Sono ad accesso sequenziale diretto
C I files di dati I files (archivi) Files di programmi sono solo gestiti dal compilatore C Files di dati Possono essere creati, aggiornati, letti, scritti da programmi C Servono per conservare dati su
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2015
File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 15 Maggio 2015 2nda prova in itinere Era il 21 Maggio 2 2nda prova in itinere Era il 21 Maggio Spostata (da 3 settimane) al 22
DettagliOperazioni su file di caratteri
Operazioni su file di caratteri Apertura fopen Chiusura fclose Scrittura fprintf Lettura fscanf Controllo fine file feof Prof. E. Occhiuto INFORMATICA 242AA a.a. 2010/11 pag. 1 Apertura di un file: Si
DettagliUn file è un astrazione di memorizzazione di dimensione potenzialmente illimitata (ma non infinita), ad accesso sequenziale.
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. Credits Prof. Campi
Gestione dei File Credits Prof. Campi 1 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi Si usano dall'interno dei programmi Realizzano la persistenza dei dati cioè
DettagliPROVA SCRITTA 23 MARZO 2010
PROVA SCRITTA 23 MARZO 2010 In un file binario, MY_FILE.DAT, si memorizzano per ciascuno studente universitario: nome e cognome (stringhe, 20 char), matricola (intero), codice del corso di laurea (stringa
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
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
DettagliTrasformare array paralleli in array di record
Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo dell array). A volte è necessario gestire 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
DettagliFiles in C endofile
Files in C Il C vede i file semplicemente come un flusso (stream) sequenziale di bytes terminati da un marcatore speciale che determina la fine del file (end-of-file). 0 1 2 3 4... endofile A differenza
DettagliDIPARTIMENTO DI ELETTRONICA E INFORMAZIONE. File. Marco D. Santambrogio Ver. aggiornata al 15 Maggio 2013
File Marco D. Santambrogio marco.santambrogio@polimi.it Ver. aggiornata al 15 Maggio 2013 Obiettivi Alcuni problemi aperti Il main() Allocazione dinamica della memoria Il salvataggio dei dati File File
DettagliTrasformare array paralleli in array di record
Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo dell array). A volte è necessario gestire informazioni
DettagliGestione dei file in C
Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente
DettagliTrasformare array paralleli in array di record
Trasformare array paralleli in array di record Trasformare array paralleli in array di record Un array è una struttura di dati omogenea: gli elementi dell array sono tutti dello stesso tipo (che è il tipo
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
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
DettagliA. Veneziani Files di record
A. Veneziani Files di record Caratteristiche dei file di record I file di record si differenziano rispetto a quelli di testo per avere i dati memorizzati in un formato predefinito ben preciso suddiviso
DettagliGESTIONE DEI FILE IN C. Docente: Giorgio Giacinto AA 2008/2009
Università degli Studi di Cagliari Corso di Laurea Specialistica in Ingegneria per l Ambiente ed il Territorio Corso di Laurea Specialistica in Ingegneria Civile - Strutture FONDAMENTI DI INFORMATICA 2
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
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma in C++ #include using namespace std; main() { cout
Dettagli4. Accesso diretto per gli archivi con record a lunghezza costante
4. Accesso diretto per gli archivi con record a lunghezza costante Nell accesso diretto (in inglese, random) al file binario, le operazioni di lettura o scrittura devono essere precedute dall operazione
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
Dettagli! I file di testo non sono indispensabili: sono semplicemente comodi 1
Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare! È un'astrazione di memorizzazione assolu -tamente generale, usabile per memorizza -re su file informazioni di qualsiasi
Dettaglipuntatori Lab. Calc. AA 2006/07 1
puntatori Lab. Calc. AA 2006/07 1 Attributi di un oggetto nome o identificatore; tipo; valore (o valori); indirizzo; Lab. Calc. AA 2006/07 2 Indirizzo Consideriamo la dichiarazione con inizializzazione:
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
DettagliCorso di Fondamenti di Programmazione canale E-O. Strutture. Strutture. Definizione di strutture (2) Definizione di strutture (1)
Corso di Fondamenti di Programmazione canale E-O Tiziana Calamoneri Strutture e Unioni DD Cap. 10, pp. 379-391, 405-406 KP Cap. 9, pp. 361-379 Strutture Strutture Collezioni di variabili correlate (aggregati)
DettagliFile binari e file di testo
I file File binari e file di testo distinzione tra file binari file di testo si possono usare funzioni diverse per la gestione di tipi di file diversi Programmazione Gestione dei file 2 File binari e file
DettagliL AMBIENTE CODE BLOCKS E L IO
L AMBIENTE CODE BLOCKS E L IO Il primo programma #include main() { printf("ciao Mondo!"); } Il file deve essere salvato con estensione.c Il primo programma in C++ #include using
DettagliI FILE. Un FILE è una sequenza di elementi il cui numero può crescere indefinitamente in base alle esigenze (un file è perciò una struttura dinamica).
I FILE Ogni volta che usiamo un programma, inseriamo dei dati in un eseguibile, quando il programma termina tutti i dati inseriti si perdono. L ideale sarebbe avere a disposizione un qualcosa che permette
DettagliFondamenti di Informatica L-A
Fondamenti di Informatica L-A Esercitazione del 23/11/07 Ing. Giorgio Villani Ripasso Teoria Funzioni ricorsive 2 fatt(2) 1 2*fatt(1) fatt(1) 1 2*1 1*fatt(0) fatt(0) 1*1 caso base fatt(0)=1 Esercizio 1
DettagliGestione dei file in C
Gestione dei file in C Fondamenti di Informatica Che cos è un file e a cosa serve? Memoria di massa vs memoria centrale q La memoria di massa (disco fisso) è un dispositivo di memorizzazione generalmente
DettagliI files in C. A cura del prof. Ghezzi
I files in C A cura del prof. Ghezzi 1 Perchè i files? Realizzano la persistenza dei dati dati che sopravvivono all esecuzione del programma Sono delle strutture di dati sequenziali 2 Files e S.O. I files
DettagliGESTIONE DEI FILE. File come tipo di dati
GESTIONE DEI FILE File come tipo di dati Nel linguaggio C, i file vengono trattati come un tipo di dati derivato, cioè ottenuto dai tipi elementari esistenti. In pratica, quando si apre e si gestisce un
DettagliEsercitazioni di Fondamenti di Informatica - Lez. 9 4/12/2018
Esercitazioni di Fondamenti di Informatica - Lez. 9 /1/018 Esercizi sulla gestione dei file in C Il codice degli esercizi e contenuto nella cartella parte1 1. Creare una funzione C che legga tutto cio
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
DettagliIl linguaggio C I file
Il linguaggio C I file mylib.c #include mylib.h int leggi(int a[], int dim) { int i=0; while( scanf("%d", a+i) ) { i++; if( i>=dim ) break; } return i; } void scambia(int *a, int *b) { int t; t = *a; *a
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
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
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
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
DettagliTipi strutturati - struct
Fondamenti di Programmazione A Appunti per le lezioni Gianfranco Rossi Tipi strutturati - struct Struttura dati (concreta) struct: sequenza di n elementi (n 0), rispettivamente di tipo t1,,tn (non necessariamente
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
Dettagli! I file di testo non sono indispensabili: sono semplicemente comodi 1. Sintassi:
Un file binario è una pura sequenza di byte, senza alcuna strutturazione particolare! È un'astrazione di memorizzazione assolu -tamente generale, usabile per memorizza -re su file informazioni di qualsiasi
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
DettagliFile e puntatori a file
File e puntatori a file Vitoantonio Bevilacqua vitoantonio.bevilacqua@poliba.it La libreria stdio.h mette a disposizione delle funzioni che hanno la peculiarità di trattare con questa nuova tipologia di
DettagliProgrammazione Procedurale in Linguaggio C++
Programmazione Procedurale in Linguaggio C++ Tipi Strutturati Parte 1 Introduzione G. Mecca M. Samela Università della Basilicata Tipi Strutturati: Introduzione >> Sommario Sommario Panoramica Alcuni Esempi
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
DettagliFONDAMENTI DI INFORMATICA. Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI. Facoltà di Ingegneria Università degli Studi di Udine
FONDAMENTI DI INFORMATICA Prof. PIER LUCA MONTESSORO Ing. DAVIDE PIERATTONI Facoltà di Ingegneria Università degli Studi di Udine Linguaggio C I file 2001 Pier Luca Montessoro - Davide Pierattoni (vedere
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
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
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
DettagliStreams e disk files
Streams e disk files Streams 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: Testo: sequenza
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
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)
DettagliStrutture Dati Dinamiche
Strutture Dati Dinamiche Motivazioni Le variabili considerate fino a questo punto devono essere dichiarate staticamente, ossia la loro esistenza, il loro nome e la loro dimensione devono essere previsti
DettagliESERCIZIO 1 (5 punti) Convertire in binario il valore, espresso in decimale, Si usi la rappresentazione in virgola fissa.
PROVA SCRITTA DEL CORSO DI CORSO DI LAUREA IN INGEGNERIA BIOMEDICA ED ELETTRICA 23/9/2008 MOTIVARE IN MANIERA CHIARA LE SOLUZIONI PROPOSTE A CIASCUNO DEGLI ESERCIZI SVOLTI ESERCIZIO 1 (5 punti) Convertire
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
DettagliLezione 11: Liste a Puntatori e Input/Output
Lezione 11: Liste a Puntatori e Input/Output Vittorio Scarano Laboratorio di Informatica I Corso di Laurea in Informatica Università degli Studi di Salerno Struttura della lezione Richiamo: strutture (struct)
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
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
DettagliIl linguaggio C. Breve panoramica su stdio.h
Il linguaggio C Breve panoramica su stdio.h 1 Input/Output: stdio.h Contiene definizioni di costanti legate all I/O es. EOF (end of file) #define EOF (-1) valore restituito alla fine di un file Contiene
DettagliLa gestione dell'errore
La gestione dell'errore Esiste una variabile globale intera, definita nell'header errno.h che viene settata nel caso in cui una chiamata di sistema non possa eseguire correttamente il suo compito. Tale
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
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
DettagliLe strutture. Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune.
Le strutture Una struttura C è una collezione di variabili di uno o più tipi, raggruppate sotto un nome comune. Dichiarazione di una struttura: struct point { int x; int y; }; La dichiarazione di una struttura
DettagliInformatica (A-K) 23. Linguaggio C -8
Modalità di accesso ai file Informatica (A-K) 23. Linguaggio C -8 Accesso sequenziale: in fase di lettura i dati possono essere ritrovati (sequenzialmente) scorrendo tutti i record del file a partire dal
DettagliFondamenti di Informatica A. A / 1 9
Fondamenti di Informatica Prof. Marco Lombardi A. A. 2 0 1 8 / 1 9 Concetti Introduttivi 1/2 SQL (Structured Query Language) permette di manipolare i dati, interrogare un database relazionale e modellarne
DettagliGESTIONE DEI FILE! I 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
DettagliFile file di testo file binari
File In C i file vengono distinti in due categorie: file di testo, trattati come sequenze di caratteri. organizzati in linee (ciascuna terminata da '\n') file binari, visti come sequenze di bit File di
DettagliIndice. La gestione dei file in C e gli stream. Apertura e chiusura di un file. Operazioni sui file. Accesso sequenziale e non sequenziale
File in C Indice La gestione dei file in C e gli stream Apertura e chiusura di un file Operazioni sui file Accesso sequenziale e non sequenziale Gestione dei file in C In C all interno della standard library
DettagliLa copia di un file. contare di quanti caratteri sia composto il file (e quindi determinare la dimensione del file di origine)
La copia di un file Nell'esercizio di oggi cerchiamo di implementare un programma che permetta di effettuare la copia di un file di testo. L'operazione di copia, oltre a permettere di creare un nuovo file
DettagliARCHIVI E FILE. Prof. Ciaschetti
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
DettagliFILE SEQUENZIALI E AD ACCESSO DIRETTO
FILE SEQUENZIALI E AD ACCESSO DIRETTO L input-output astratto (stream) Le periferiche disponibili in un sistema di elaborazione sono, dal punto di vista hardware, anche molto diverse fra di loro anche
DettagliTipi user-defined. parte dichiarativa globale:
Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per definire nuovi tipi (tipi user-defined) Vediamo le regole generali che governano la definizione di
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
DettagliUniversità degli Studi di Cassino Corso di Fondamenti di Informatica Tipi strutturati: Stringhe. Anno Accademico 2010/2011 Francesco Tortorella
Corso di Informatica Tipi strutturati: Stringhe Anno Accademico 2010/2011 Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri quali
DettagliInput/output console file caratteri stringhe formattato ascii binari
Input/output Input/Output Input/output console file caratteri stringhe formattato ascii binari La libreria standard del C La libreria standard del C è in realtà un insieme di librerie Per usare una libreria,
DettagliTipi definiti dall'utente
Tipi definiti dall'utente Tipi definiti Il C mette a disposizione un insieme di tipi di dato predefiniti (tipi built-in) e dei meccanismi per denire nuovi tipi (tipi user-defined) Possiamo: Ridenominare
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
DettagliCorso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File
Corso di Fondamenti di Informatica Ingegneria delle Comunicazioni BCOR Ingegneria Elettronica BELR Introduzione al C Unità 9 File D. Bloisi, A. Pennisi, S. Peluso, S. Salza, C. Ciccotelli Sommario Input/Output
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:
DettagliLe strutture /1. struct temp {char titolo[200]; char autore[100]; int pagine; } ; typedef struct temp libro;
Le strutture /1 Le strutture rappresentano un tipo di variabile che, diversamente dagli array, consente di gestire in modo compatto, mediante un'unico identificatore, un insieme di valori che non possiedano
DettagliCorso di Fondamenti di Informatica Tipi strutturati: Stringhe
Corso di Fondamenti di Informatica Tipi strutturati: Stringhe Anno Accademico Francesco Tortorella Stringhe di caratteri La stringa è il tipo strutturato con cui vengono rappresentati gruppi di caratteri
Dettagli