Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 1 Lezione 13 e 14 GESTIONE DEI FILE A) Nozioni sulla gestione dei.

Slides:



Advertisements
Presentazioni simili
File Linguaggio C.
Advertisements

INFORMATICA Altre Istruzioni di I/O
Fondamenti di Informatica CDL in Ingegneria Gestionale - A.A Gestione dei file Ing. Simona Colucci.
Uso avanzato di C.
Nel C non esiste un dato primario di tipo stringa; queste sono rappresentate con un array monodimensionale di caratteri (tipo char). Così per definire.
Introduzione al linguaggio C
I File di testo in Pascal
Operazioni di I/O da console e da file in C standard
1 Directory Il formato delle directory varia nei vari FS utilizzati in ambito Unix Quando una directory viene aperta viene restituito un puntatore a un.
SC che operano su file (1)
Anno accademico Input e Output in C. Anno accademico Sommario Input e outputInput e output I flussi di I/O I flussi di I/O Luso.
INFORMATICA I file.
Caratteri e stringhe di caratteri
Argomenti dalla linea dei comandi Gli argomenti possono essere passati a qualsiasi funzione di un programma, compresa la main(), direttamente dalla linea.
FILE DATI 16 lunedi 26 luglio giovedi ore 9 Come sappiamo, un file dati è un gruppo di informazioni tra loro correlate, memorizzate in un dispositivo di.
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 15 Maggio 2013.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 9 Maggio 2012.
Laboratorio di Linguaggi lezione VI Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea in.
Laboratorio di Linguaggi lezione XI: I/O Marco Tarini Università dellInsubria Facoltà di Scienze Matematiche, Fisiche e Naturali di Varese Corso di Laurea.
Introduzione agli stream e alle classi
INFORMATICA I file. © Piero Demichelis 2 File Per rendere più uniforme possibile il comportamento dei programmi in relazione alla grande varietà dei dispositivi.
INFORMATICA Altre Istruzioni di I/O. © Piero Demichelis 2 Funzioni di I/O Per la lettura e la scrittura da videoterminale il C prevede numerose istruzioni.
A.A. 2010/2011Ambienti di Programmazione per il Software di Base1 (Es. – 6) Ambienti di Programmazione per il Software di Base Le Stringhe in C Input.
Strutture di controllo nel C
Politecnico di Milano Esercizi Stringhe Ricerca binaria.
Esercizi di riepilogo sul linguaggio C: file, puntatori, liste
Esercizi Puntatori, struct con campi puntatore, puntatori a struct, rapporto tra array e puntatori. FUNZIONI Passaggio di parametri per indirizzo, passaggio.
Politecnico di Milano Esercizi Preparazione alla prima prova intermedia.
1 Gestione dei File Corso di Informatica A Vito Perrone.
File di testo, file binari
I File.
GESTIONE DEI FILE Per poter mantenere disponibili i dati tra le diverse esecuzioni di un programma (persi-stenza dei dati) è necessario poterli archi-viare.
void binario(int n); …………………
Creazione progetto in C++/DEV
Prof.ssa Chiara Petrioli -- Fondamenti di programmazione, a.a. 2009/2010 Corso di Fondamenti di programmazione a.a. 2009/2010 Prof.ssa Chiara Petrioli.
1 Gestione dei File. 2 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi –Si usano dall'interno dei programmi Realizzano.
G. Amodeo, C. Gaibisso Programmazione di Calcolatori Lezione X Ingresso/Uscita di Interi Programmazione di Calcolatori: Ingresso/Uscita 1.
Esercizi su File.
Esercizi su File e Liste
Gestione dei file di testo, matrici e struct
2000 Prentice Hall, Inc. All rights reserved. Capitolo 11 (Deitel) Lelaborazione dei file Sommario Introduzione La gerarchia dei dati 11.3.
1 Esempi domande di esame. 2 Dato il seguente programma #include int main(){ int *p,j=9,i=5; p=&j; *p=i; printf("%d %d %d\n", i,j,*p); scanf("%d",p);/*
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 11 e 12 -
Programmazione in linguaggio C
Prof.ssa Chiara Petrioli -- corso di programmazione 1, a.a. 2006/2007 Corso di Programmazione 1 a.a.2006/2007 Prof.ssa Chiara Petrioli Corso di Laurea.
Programmazione Web PHP e MySQL 1. 2Programmazione Web - PHP e MySQL Esempio: un blog.
File binari Accesso a file con record di lunghezza costante Struct Persona { Int id; Char nome[50];// nome e cognome Double stipendio; }; Persona dipendente;
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 13 e 14 -
1 Il linguaggio C Precisazioni sull’esperienza in laboratorio.
Operatori di incremento e decremento
10/10/20021 Ingresso e uscita in Java F. Bombi 10 ottobre 2002.
Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 1 Lezione 15 e 16 Programmazione strutturata A) progettazione del.
Fondamenti di Informatica L- A #include “mylib.h” int leggi(int a[], int dim) { int i=0; while( scanf("%d", a+i) ) { i++; if( i>=dim ) break; } return.
Capitolo 14 Diapositiva 1 Linguaggio C – Guida alla programmazione 2/ed – A. Bellini, A. Guidi Copyright © The McGraw-Hill Companies srl Archiviare.
11. Gestione dei file Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
11. Gestione dei file Ing. Simona Colucci Informatica - CDL in Ingegneria Industriale- A.A
Files in C++ Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera)
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Esercizi su stringhe e file 15 Stringhe e file.
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 6 Marzo 2016.
1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 1 Lezione 13 e 14 GESTIONE DEI FILE A) Nozioni sulla gestione dei file B) Esempio applicativo: gestione di una agenda Fabio Scotti Laboratorio di programmazione per la sicurezza

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 2 Lezione 13 e 14 Fabio Scotti Laboratorio di programmazione per la sicurezza A) Programmi per la gestione dei file Obiettivi : Essere in grado di scrivere semplici programmi impieganti file Approfondire gli aspetti delle operazioni rigurardanti i file mediante esempi di codice

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 3 Obiettivi Scrivere un programma che salva in un file tutto quello che si scrive sulla tastiera. Capire le differenze fra lettura e scrittura di un file in modalità binaria o testuale.

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 4 Programma 1 // scriviconsole.c scrive in un file // tutto quello che viene digitato da console #include #define NOME_FILE "console.txt" main() { FILE *file_out; char c; file_out = fopen(NOME_FILE, "w"); if(file_out == NULL) { printf( "Non trovo il file.\n" ); exit(-1); } printf("(Per terminare c=getchar(); while(c != { fputc(c, file_out); c=getchar(); } fclose(file_out); }

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 5 Modalità testuale e binaria Un file si può aprire in modalità testuale: fopen(NOME_FILE, "rt"); Esempio: il fineriga, composto dai due caratteri LF (Line Feed: 10 o '\n‘) e CR (Carriage Return: 13 o '\r‘), viene trasformato in LF. In modalità binaria non viene operata nessuna trasformazione e tutti i caratteri vengono letti. oppure binaria: fopen(NOME_FILE, "rb"); In modalità testo i caratteri prima di essere posti nel buffer vengono interpretati.

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 6 Programma 2 (1) #include #define NOME_FILE "soldati.txt" main() { FILE *file_in; unsigned long numero_caratteri; file_in = fopen(NOME_FILE, "rt"); if(file_in == NULL) { printf( "Non trovo il file.\n" ); exit(-1); } numero_caratteri=0; while(fgetc(file_in) != EOF) numero_caratteri++; printf("[testo]: Il file e' composto da %u caratteri\n", numero_caratteri); fclose(file_in); Si sta come d'autunno sugli alberi le foglie. File nella directory corrente soldati.txt

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 7 Programma 2 (2) // riapriamo il file in modalita’ binaria // e rifacciamo le stesse operazioni file_in = fopen(NOME_FILE, "rb"); if(file_in == NULL) { printf( "Non trovo il file.\n" ); exit(-1); } numero_caratteri=0; while(fgetc(file_in) != EOF) numero_caratteri++; printf("[binaria]: Il file e' composto da %u caratteri\n", numero_caratteri); fclose(file_in); } C:\>contacaratteri.exe  testo  : Il file è composto da 46 caratteri  binaria  : Il file è composto da 50 caratteri

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 8 Lezione 13 e 14 Fabio Scotti Laboratorio di programmazione per la sicurezza B) Programma per la gestione di una agenda Obiettivi : Essere in grado di impiegare i file all'interno di programmi complessi Essere in grado di passare alle funzioni le informazioni riguardanti i file

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 9 Obiettivi Scrivere un programma che gestisce una agenda di indirizzi. Il programma deve poter caricare da file gli indirizzi, modificare i dati degli utenti registrati e salvare su un file le modifiche. Prime nozioni dell’input/output formattato. MarioRossi AnnaBellini MassimoMonti … FILE rubrica.txt

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 10 Lettura di record da file (1) Come leggere o scrivere dei record da un file di testo? MarioRossi AnnaBellini MassimoMonti … FILE rurica.txt Con fprintf e fscanf e una oppurtuna stringa di controllo. Inziamo con un’operazione di lettura: char nome[128], cognome[128], tel[18]; … fscanf(Fp1, "%s\t%s\t%s\n", nome, cognome, tel) ;

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 11 Lettura di record da file (2) Come scandire tutto il file? E come ci si accorge di essere giunti in fondo al file? MarioRossi AnnaBellini MassimoMonti … FILE rurica.txt Usando un ciclo ed esaminando cosa ritorna la fscanf : char nome[128], cognome[128], tel[18]; … while(fscanf(Fp1, "%s\t%s\t%s\n", nome, cognome, tel) == 3 ) { printf("%s %s, %s\n", nome, cognome, tel); }

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 12 agenda.c (1) #include int main() { char nome[256], cognome[256], tel[256]; char finito; char nomefile[]="rubrica.txt" ; FILE *Fp1; // Apro il file in modalita' append testo Fp1 = fopen(nomefile, "a"); if (Fp1==NULL){ printf("File %s not found\n", nomefile); exit(-1); } printf("Il puntatore (*Fp) al file %s e' %d\n\n", nomefile, Fp1);

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 13 agenda.c (2) // Salvo nel file i dati delle persone finito='n'; while((finito=='n') || (finito=='N')) { printf("Inserire Nome: "); scanf("%s", nome); printf("Inserire Cognome: "); scanf("%s", cognome); printf("Inserire TEL: "); scanf("%s", tel); fprintf(Fp1, "%s\t%s\t%s\n", nome, cognome, tel); fflush(stdin); printf("Finito? S(i) oppure N(o) --> "); scanf("%c", &finito); }

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 14 agenda.c (3)

Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 15 agenda.c (4) Uscita del programma agenda.exe: