IL CONCETTO DI FILE. È illecito operare oltre la fine del file.



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

Gestione di files Motivazioni

4. Accesso diretto per gli archivi con record a lunghezza costante

2) FILE BINARI: è una sequenza di byte avente una corrispondenza uno a uno con la sequenza ricevuta dal dispositivo esterno.

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

Un file è un astrazione di memorizzazione di dimensione potenzialmente illimitata (ma non infinita), ad accesso sequenziale.

La gestione di file in C++

Fondamenti di Informatica 2008 corso prof. A. Picariello. Operazioni sui FILE in C++

Ho raggiunto la fine del file Provo a leggere un intero, ma il dato che prelevo dal file non è un intero

Operazioni su file di caratteri

Informatica e Laboratorio di Programmazione C++ stream Alberto Ferrari. Alberto Ferrari Informatica e Laboratorio di Programmazione

Laboratorio di Informatica

Standard Input e Standard Output

Struttura dati FILE. Concetto di FILE

File. Unità 8. Domenico Daniele Bloisi. Corso di Programmazione e Metodi Numerici Ingegneria Aerospaziale BAER

Files in C++ Fondamenti di Informatica. R. Basili. a.a

Input/output in C e in C++

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

Gestione dei file di dati

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

Concetto di stream. c i a o \0. c i a o \0. c i a o \0

Gestione dei File C. Generalità

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

Gestione dei File C. Generalità

Fondamenti di Informatica

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

A. Veneziani Files di record

Gestione dei File. Credits Prof. Campi

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

Scrittura formattata - printf

INFORMATICA File di testo in C Roberta Gerboni

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

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

I file. Record logici e record fisici

ISTITUTO TECNICO INDUSTRIALE STATALE LA GESTIONE DEI FILE DI TESTO IN C++

Esercizi. I File ed il C

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

Laboratorio di Informatica Ingegneria Clinica Lezione 30/11/2011

Gestione dei file in C

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

Input/output console file caratteri stringhe formattato ascii binari

I file di dati. Unità didattica D1 1

Tipi strutturati - struct

Laboratorio di Programmazione

ciclo di vita della soluzione (informatica) di un problema

Trasformare array paralleli in array di record

L AMBIENTE CODE BLOCKS E L IO

Trasformare array paralleli in array di record

Input/Output su File

File qualche nota riassuntiva Che cos è un file? È un astrazione fornita dal sistema operativo, per consentire la memorizzazione di informazioni su

Trasformare array paralleli in array di record

Laboratorio di Programmazione Gruppo III, Ml-ZZ. Alberto Finzi

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

Laboratorio Informatica Classe 4A Serale Venerdì 18/02/2011. Gruppo. Cognome Riontino Nome Raffaele. Cognome Nome

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

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

Gestione dei file. File di testo e binari

Linguaggio C: i file

Capitolo 11 Elaborazione di file

Struttura dati FILE. Motivazioni: memorie a confronto

ingresso/uscita da file

ELEMENTI DI INFORMATICA. Linguaggio C

Corso di Algoritmi e Strutture Dati Lezione del Esercitatrice: dott.ssa Susanna Cozza. L argomento della lezione

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

file fisico file logico

Sistemi Operativi (M. Cesati)

FILE SEQUENZIALI E AD ACCESSO DIRETTO

File. Unità 8. Corso di Laboratorio di Informatica Ingegneria Clinica BCLR. Domenico Daniele Bloisi

Sistemi Operativi (M. Cesati)

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

Sistemi Operativi (M. Cesati)

Esercitazioni Fondamenti di Informatica

Sistemi Operativi (M. Cesati)

DIPARTIMENTO DI ELETTRONICA, INFORMAZIONE E BIOINGEGNERIA. INFORMATICA B Ingegneria Elettrica. I file in Matlab

Gestione dei File. dischi nastri cd

Laboratorio di Informatica

L AMBIENTE CODE BLOCKS E L IO

Sistemi Operativi (M. Cesati)

int ninv; /* numero di inventario */

Prof. G. Ascia. Gestione dei File C

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

Ingresso ed Uscita(1)

LIBRERIE STANDARD in C. LIBRERIE STANDARD in C

GESTIONE DEI FILE. File come tipo di dati

Sono file di caratteri, organizzati in linee. Ogni linea e` terminata da una marca di fine linea (newline, cara ttere '\n').

Fondamenti di Informatica II 24. Gestione I/O e File in C++

Lezione XII.III Gestione dei file Un progetto completo

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

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

Gestione dei file in C

LIBRERIE STANDARD in C

Gli stream. ios ostream. istream. iostream

Esercizio 1 (17 punti)

Gestione dei file in C

Corso di Fondamenti di Informatica Prof. Aldo Franco Dragoni Prova scritta del 21/06/2010. Avvertenze. Specifiche

Transcript:

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 (record) uniformi, cioè dello stesso tipo. Un file è un astrazione di memorizzazione di dimensione potenzialmente illimitata (ma non infinita), ad accesso sequenziale. Una testina di lettura/scrittura (concettuale) indica in ogni istante il record corrente: inizialmente, la testina si trova per ipotesi sulla prima posizione dopo ogni operazione di lettura / scrittura, essa si sposta sulla registrazione successiva. È illecito operare oltre la fine del file. 1

OPERARE SU I FILE A livello di sistema operativo un file è denotato univocamente dal suo nome assoluto, che comprende il percorso e il nome relativo. In certi sistemi operativi il percorso può comprendere anche il nome dell unità. in DOS o Windows: C:\temp\prova1.c in UNIX e Linux: /usr/temp/prova1.c Per operare su un file dall interno di un programma occorre stabilire una corrispondenza fra: il nome del file come risulta al sistema operativo un nome di variabile definita nel programma. Questa operazione si chiama apertura del file. 2

OPERARE SU I FILE Dopo l'apertura, il programma può operare sul file operando formalmente sulla variabile che lo rappresenta: il sistema operativo provvederà a effettuare l operazione richiesta sul file associato a tale simbolo. Al termine, la corrispondenza fra nome del file e variabile usata dal programma per operare su esso dovrà essere soppressa, mediante l operazione di chiusura del file. 3

OPERARE SU I FILE Tipi di file E possibile gestire due tipi di file: File di testo (bytestream) File di record Il File di testo consente di memorizzare i dati come una sequenza di caratteri. Ogni lettura dal file legge una sequenza di caratteri fino al primo carattere separatore (\t, \n, \b ) incontrato. L accesso al file e SEQUENZIALE. Ogni scrittura scrive sul file la sequenza la sequenza di caratteri indicata Il File di record consente di memorizzare i dati secondo un tracciato record identificato dai campi di una struttura. Ogni scrittura scrive sul file tutti i campi della struttura identificati da una variabile Ogni lettura legge dal file tutti i campi appartenenti alla struttura. L accesso al file puo essere sia SEQUENZIALE che DIRETTO, ovvero accesso ad un record ben preciso. 4

GESTIONE FILE IN C++ IOS open, close, eof,... >>, << ISSTREAM OSSTREAM IOSTREAM cin, cout >>, << FSTREAM Fstream e la classe per la gestione di file su disco. Consente di stabilire un canale di comunicazione tra la memoria principale e la memoria di massa per effettuare operazioni di lettura e scrittura sui file. Ogni volta che si vuole operare con un file dobbiamo eseguire le seguenti operazioni: 1. Aprire il canale di comunicazione 2. Scegliere la modalita di comunicazione (lettura, scrittura, lettura e scrittura) 3. Eseguire tutte le operazioni sul file 4. Chiudere il canale di comunicazione quando non si vuole piu interagire con il file 5

GESTIONE FILE IN C++ Principali funzionalita della classe FSTREAM open ( nome_file,modo) //apre il canale di comunicazione modo puo assumere i seguenti valori: ios::in (apertura in lettura) ios::out (apertura in scrittura) ios::app(apertura in append) close ( ) // chiude il canale di comunicazione eof() // verifica se e stata raggiunta la fine del file write(string string,, dim) // scrive una stringa di lunghezza dim << // overloading dell operatore << per scrivere sul file read(buffer,dim) // legge dim byte dal file e li mem. in buffer >> // overloading dell operatore >> per leggere dal file seekg(n,posizione) // sposta la testina di lettura di n byte a partire dalla posizione specificata posizione puo assumere i seguenti valori: ios::cur (indica la posizione corrente) ios::beg (indica l inizio del file) ios::end (indica la fine del file) 6

GESTIONE FILE IN C++: Esempio FILE DI TESTO <include iostream.h> <include fstream.h> // per utilizzare la classe fstream void main ( ) { fstream f; // dichiarazione oggetto della classe fstream char *riga = new char[256]; f.open( pippo,ios::app); cin >> riga; while (!strcmp(riga, ok )) { f.close(); f << riga; cin >> riga; f.open( pippo,ios::in); while (!f.eof()) { f.close(); f >> riga; cout >> riga; 7

GESTIONE FILE IN C++: Esempio FILE DI RECORD #include<fstream.h> #include <iostream.h> #include<stdlib.h> struct dipendente { int ID; char cognome[20]; char nome[20]; double stipendio; ; void main() { const char * const archivio="c:\\cris\\dip.dat"; fstream f; int m=1; char r = 's'; dipendente p; f.open(archivio,ios::out ios::binary); if (!f) { cout << "Errore in apertura del file " << archivio << "\n"; exit(1); while(1) { p.id = m++; cout << "Inserisci il cognome --> "; cin >> p.cognome; cout << "\ninserisci il nome --> "; cin >> p.nome; cout << "\ninserisci lo stipendio --> "; cin >> p.stipendio; cout << '\n'<<p.cognome << ' ' << p.nome << ' ' << p.stipendio; cout << "\nconfermi i dati? (s/n) "; cin >> r; if (r == 's') f.write((char *) &p, sizeof(p)); cout << "Vuoi inserire un altro dipendente? (s/n) "; cin >> r; if (r == 's') cout << "\n\n"; else break; 8 f.close();

GESTIONE FILE IN C++: Esempio f.open(archivio,ios::in ios::binary); if (!f) { cout << "Errore in apertura del file " << archivio << "\n"; exit(1); // Accesso sequenziale f.seekg(0); f.read((char *) &p, sizeof(p)); while (!f.eof()) { cout << '\n'<<p.cognome << ' ' << p.nome << ' ' << p.stipendio << '\n'; f.read((char *) &p, sizeof(p)); // Accesso diretto f.open(archivio,ios::out ios::binary); if (!f) { cout << "Errore in apertura del file " << archivio << "\n"; exit(1); long l = sizeof(p); cout << \ninserisci la matricola del dipendente --> ; cin >> m; f.seekg((m-1)*l); f.read((char *) &p, sizeof(p)); cout << '\n'<<p.cognome << ' ' << p.nome << ' ' << p.stipendio << '\n'; f.close(); 9