Programmazione e Laboratorio di Programmazione

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.
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.
La ricorsione Simulazione. Il Main /* Programma che usa una funzione ricorsiva*/ #include #define MAX_N 8 main() int valore, dato; printf(Introduci n:
INFORMATICA I file.
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.
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.
1 Esercitazione sui segnali Problema: creare un programma analizzatore di file testuali che prenda come argomenti il nome di un file e una sequenza di.
INFORMATICA I file. © Piero Demichelis 2 File Per rendere più uniforme possibile il comportamento dei programmi in relazione alla grande varietà dei dispositivi.
Esercizi di riepilogo sul linguaggio C: file, puntatori, liste
1 Gestione dei File Corso di Informatica A Vito Perrone.
File di testo, file binari
I File.
void binario(int n); …………………
Creazione progetto in C++/DEV
1 Gestione dei File. 2 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi –Si usano dall'interno dei programmi Realizzano.
Esercizi su File.
Gestione dei file di testo, matrici e struct
DIPARTIMENTO DI ELETTRONICA E INFORMAZIONE File Marco D. Santambrogio – Ver. aggiornata al 21 Maggio 2014.
Fabio Scotti – Università degli Studi – Laboratorio di programmazione per la sicurezza 1 Lezione 13 e 14 GESTIONE DEI FILE A) Nozioni sulla gestione dei.
1 Fabio Scotti ( ) Laboratorio di programmazione per la sicurezza Valentina Ciriani ( ) Laboratorio di programmazione Lezione 13 e 14 -
Operatori di incremento e decremento
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
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
Lezione n. Parole chiave: Corso di Laurea: Insegnamento: Docente: A.A Salvatore Cuomo Approfondimenti di C, Stringhe e file 13 Stringhe.
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
IL SOFTWARE (FPwin 6.0).
© 2007 SEI-Società Editrice Internazionale, Apogeo
Introduzione al linguaggio C
7. Strutture di controllo Ing. Simona Colucci
I FILES AD ACCESSO SEQUENZIALE
Ambienti di Programmazione per il Software di Base
TITOLO PRESENTAZIONE sottotitolo Autore/i Indirizzo
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
© 2007 SEI-Società Editrice Internazionale, Apogeo
Programmazione e Laboratorio di Programmazione
Sviluppo di un programma
Programmazione e Laboratorio di Programmazione
APPUNTI SUL LINGUAGGIO C Memoria secondaria: File
Fondamenti di Informatica
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
comprensione e modifica di codice
APPUNTI SUL LINGUAGGIO C Simulazione Prima Prova Intermedia
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
Fondamenti di Informatica
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
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

Programmazione e Laboratorio di Programmazione Gestione dei files in linguaggio “C” Un progetto completo Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

Attività: Sviluppare in linguaggio “C”: un programma che copi un file in un altro un programma che trasformi una immagine a colori nella sua equivalente in bianco e nero un programma che metta in evidenza le tonalità rosse più intense di una immagine un programma in grado di miscelare due immagini aventi la stessa risoluzione un programma che estragga dati posizionali da un file testuale e ne generi un altro in formato CSV Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

mycp Cosa farà il nostro programma nelle varie iterazioni? MP1: lettura di un file in formato noto MP2: file di uscita e uso della redirezione MP3: parametri su linea di comando MP4: lettura di un file di formato sconosciuto MP5: gestione degli errori MP6: scrittura corretta del file di uscita Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP1 Creare un file chiamato FileNoto.dat (utilizzando un text editor) contenente le seguenti righe: Mario Rossi 22 Giulia Bianchi 30 Marco Verdi 27 Creare un file sorgente “C” chiamato mycp1.c Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP1(2) #include <stdio.h> main() { FILE *FileIn; char FileInName [80]; char var1 [80], var2 [80]; int var3; printf ("Nome del file sorgente ?"); scanf ("%s", FileInName); Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP1(3) FileIn = fopen (FileInName, "r"); fscanf (FileIn, "%s %s %d", var1, var2, &var3); printf ("%s %s %d\n", var1, var2, var3); } Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP1(3) A che serve modificare la linea: printf ("Nome del file sorgente ?\n"); in quest’altra?: printf ("Nome del file sorgente : "); All’interno del file FileNoto.dat cancellate la votazione di Giulia Bianchi e rilanciate il programma; cosa succede? Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP2 Il programma mycp nella sua prima versione legge dati da un file e li presenta sullo schermo Esiste un modo molto semplice per inserire i dati che vengono mostrati sullo schermo all’interno di un nuovo file … ricordate il meccanismo della redirezione? Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

./mycp1 > FileNotoCopia.dat MP2 (2) Provate il comando seguente: ./mycp1 > FileNotoCopia.dat Cosa succede??? La richiesta del nome del file è presentata sul canale stdout che è lo stesso canale al quale vengono inviati i dati letti dal file … Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP3 Un modo per uscire dall’impasse puo’ essere quello di evitare di inviare richieste di inserimento dati alla console e utilizzare i parametri a linea di comando A questo scopo studiamo il seguente codice “C”: #include <stdio.h> main (int argc, char *argv []) { int i; for (i=0; i<argc; i++) { printf ("<Arg%d|%s>\n", i, argv [i]); } Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP3 (2) #include <stdio.h> main (int argc, char *argv []) { FILE *FileIn; char var1 [80], var2 [80]; int var3; FileIn = fopen (argv [1], "r"); fscanf (FileIn, "%s %s %d", var1, var2, &var3); printf ("%s %s %d\n", var1, var2, var3); . . . . . Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP3 (3) Le cose ora sembrano funzionare ma … Controllate la lunghezza dei files origine e destinazione La soluzione proposta come si comporta se il formato del file viene cambiato? Che succede se il programma lavorara su files binari? Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP4 #include <stdio.h> main (int argc, char *argv []) { FILE *FileIn; unsigned char ch; FileIn = fopen (argv [1], ”rb"); for (;;) { ch = fgetc (FileIn); if (feof (FileIn)) break; printf ("%c", ch); } … quanto ci soddisfa? Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP4 (3) Quella che segue è una versione piu’ corretta e pulita. Per quali motivi? ch = fgetc (FileIn); while (! feof (FileIn)) { fputc (ch, FileOut); Nby++; } A cosa serve la prima fgetc? Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP5 Che succede a mycp se viene dato come nome del file di ingresso quello di un file che non esiste? Che succede a mycp se il file di ingresso appartiene ad un altro utente o è protetto? Come vengono gestite eventuali anomalie di funzionamento? Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP5 (2) Apertura del file di ingresso: FileIn = fopen (FileInName, "rb"); if (FileIn == NULL) { printf ("Impossibile aprire il file %s\n", FileInName); return (1); } Non è ancora del tutto corretto … cosa non va? Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP5 (2) FileIn = fopen (FileInName, "rb"); if (FileIn == NULL) { fprintf (stderr, "Impossibile aprire il file %s\n", FileInName); return (1); } Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP6 L’ultimo passo consiste nell’inserire nel codice sorgente le istruzioni che ci permetteranno di scrivere il file di uscita facendo a meno della redirezione Inserire l’apertura del file di uscita utilizzando il secondo parametro su linea di comando Verificare la corretta scrittura dei singoli caratteri in uscita Abbiamo aperto i files ma dobbiamo anche chiuderli!!! Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP6 (2) #include <stdio.h> int main (int argc, char *argv []) { FILE *FileIn, *FileOut; unsigned char ch; long int Nby = 0; int status; Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP6 (3) FileIn = fopen (argv [1], "rb"); if (FileIn == NULL) { fprintf (stderr, "Impossibile aprire il file %s\n", argv [1]); return (1); } FileOut = fopen (argv [2], "wb"); if (FileOut == NULL) { fprintf (stderr, "Impossibile aprire il file %s\n", argv [2]); return (2); Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP6 (4) ch = fgetc (FileIn); while (! feof (FileIn)) { status = fputc (ch, FileOut); if (status != ch) { fprintf (stderr, "Errore scrivendo il file %s\n", argv [2]); return (3); } Nby++; Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”

MP6 (4) fprintf (stderr,"Copiati %ld bytes\n", Nby); fclose (FileIn); fclose (FileOut); return (0); } … Ci siamo quasi! Ora non resta che fare il controllo di correttezza dei parametri sulla linea di comando e verificare che la funzione fgetc funzioni correttamente … Programmazione e Laboratorio di Programmazione: Gestione dei files in linguaggio “C”