FILE TESTO INPUT PROGRAMMA + DATI OUTPUT FILE DATI PROGRAMMA OUTPUT

Slides:



Advertisements
Presentazioni simili
File system: system call e strutture dati a run-time.
Advertisements

Informatica 22/03/2012.
CAPITOLO 2.
PROGRAMMARE IN PASCAL (le basi)
I File di testo in Pascal
Alcune Classi Standard Object, Vettori. Esercizio dellultima volta Superclasse Persona Sottoclasse Libro.
Sequential Statements. – Il VHDL simula lo svolgersi in parallelo di varie operazioni – Loggetto fondamentale e il PROCESS – Un PROCESS contiene una serie.
Esempio: Tombola! Parte seconda.
Sezione: Costruttori Costruttori. Definizione dei costruttori Se per una classe A non scrivo nessun costruttore, il sistema automaticamente crea il costruttore.
Programmazione Mod. B - prof. Burattini - Cap 17 1.
Introduzione agli stream e alle classi
JAVA C import java.util.*; #include <stdio.h>
Lettura e scrittura - Stream
1 Implementazione di Linguaggi 2 PARTE 6 Implementazione di Linguaggi 2 PARTE 6 Massimo Ancona DISI Università di Genova Testo: A.V. Aho, R. Sethi, J.D.Ullman.
Esercitazioni sui File Nicola Fanizzi - DIB Corso (B) di Programmazione CdL in Informatica – I livello A.A. 2003/2004.
Istruzioni Decisionali
Sottoprogrammi e Unità di Compilazione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
Array Ricerca Ordinamento Fusione Nicola Fanizzi Laboratorio - Corso di Programmazione (B) C.d.L. in Informatica DIB - Università degli Studi di Bari.
Gestione File System e I/O in Windows 2000 Implementazione del File System FAT-12, FAT-16, FAT-32 NTFS API relative al File System Gestione dei dispositivi.
Il main program Ogni programma in C++, per essere eseguibile, deve contenere una funzione main() da cui l’esecuzione comincerà main() deve avere un tipo.
Programmazione distribuita in Java
OPERAZIONI CON STRINGHE Le operazioni più interessanti da fare, per ora, con le stringhe sono: determinare la lunghezza della stringa, cioè quanti caratteri.
CAPITOLO 7.
FILE TESTO OUTPUT INPUT + DATI PROGRAMMA OUTPUT INPUT PROGRAMMA CARICAMENTO DATI FILE DATI.
Primo progetto intercorso Simulare lattività di un distributore automatico di generi alimentari in cui sono in vendita prodotti con data di scadenza.
CAPITOLO 10.
In Pascal è possibile avere oltre ai file testo, cioè file di char, anche file di interi, stringhe, records. Unica condizione è quella che se un file.
Java base VI: Gestione I/O. Argomenti Introdurre le API per linput e output in Java.
Sequence. CREARE UNA SEQUENCE CREATE SEQUENCE nome [INCREMENT BY n] [START WITH n] [MAXVALUE n | NOMAXVALUE] [MINVALUE n | NOMINVALUE] [CYCLE | NOCYCLE]
Componenti dell’architettura Oracle
AN Fondam98 Input Output Input Output I files standard di I/O.
Piero Scotto - C141 C14 #14 Puntatori e file. Il problema dellordinamento. Debug.
Un esempio: Registrazione e lettura di dati in un file
I SISTEMI OPERATIVI: INTERFACCE Interfacce testuali: le operazioni vengono compiute scrivendo i comandi su una riga dello schermo (riga di comando). Esempi:
Microsoft Access Maschere.
Muoversi tra le finestre
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 4 ARGOMENTI: STRINGHE DI CARATTERI.
ISTRUZIONI PER L’USO.
Piano gestione solventi
JavaScript Lezione 5 Tipizzazione ed operazioni tra tipi diversi Istruzioni di input.
Lambiente operativo. 2 Per avviare e poter utilizzare il computer è necessario un particolare programma che si chiama sistema operativo. Windows è un.
Corso di Elementi di Informatica
PRIMI DISEGNI CON CABRI Realizzato da Daniel Bulgarini e Matteo Co CLASSE 2°C LICEO PASCAL MANERBIO.
Primi passi con Windows: Gestione del Desktop Barra Applicazioni Menu Avvio ISTITUTO COMPRENSIVO N.7 - VIA VIVALDI - IMOLA Via Vivaldi, Imola.
Benvenuti nellanimazione per iscriversi a PayPal Segui il presente breve filmato, ti dara indicazione e suggerimenti per iscriverti a PayPal, il sistema.
OUTPUT FORMATTATO La funzione printf consente di effettuare la stampa a video formattata. Sintassi: printf ( stringa_formato, arg0, arg1, … ); La stringa.
Tutorial relativo al Mio EBSCOhost. Benvenuti al tutorial dedicato a Mio EBSCOhost, verranno fornite le istruzioni per la configurazione e lutilizzo ottimizzato.
Modulo 1 bis Menù Incolla Esercitazione Un computer è quasi umano, a parte il fatto che non attribuisce i propri errori a un altro computer. (Anonimo)
Moduli o Form I Moduli permettono all'utente di immettere informazioni...
DMUX SDI (OUT VTR) AUDIO MIX AUDIO MIX VIDEO VIDEO Il sistema video digitale ( SDI ) contiene sia il video che l'audio, su un unico cavo video e il connettore.
Fondamenti di Informatica Corsi di Laurea in Ingegneria Gestionale Canale AL ESERCITAZIONE 6 ARGOMENTI: LAVORARE CON CLASSI METODI DELLISTANZA, COSTRUTTORI.
Realizzazione Grammatica non contestuale –no ricorsioni sinistre –LL(1) produzione individuata dal primo token Ogni non-terminale -> funzione –rappresenta.
24 aprile 2002 Avvisi: Risultati 1 o Esonero: (entro) lunedi 27 disponibili nella pag. WEB, ma anche esposti nella bacheca fuori dal corridoio 2 o dente,
Funzioni stringhe. chr Restituisce il carattere di un valore ascii dato. Per vedere lelenco dei codici ascii clicca QQQQ uuuu iiiiEsempio
SUBQUERY Chi ha un salario maggiore di quello di Abel? Occorre scomporre la query in due sotto problemi: MAIN : quali impiegati hanno un salario maggiore.
2000 Prentice Hall, Inc. All rights reserved. I file Apertura e chiusura I file ad accesso sequenziale I file ad accesso casuale Apre un file già esistente.
Introduzione al linguaggio C. Cos’e’ il C? Il C e’ un linguaggio ad alto livello Un compilatore C prende in input un file contenente codice sorgente C.
Scrivere un algoritmo non deterministico di complessita` polinomiale che risolva il problema del commesso viaggiatore. Vengono proposte due soluzioni,
PROVA INTERCORSO MOD.B a.a RICORSIONE ESERCIZI A1.1-A1.6.
In Pascal è possibile avere oltre ai file testo, cioè file di char, anche file di interi, stringhe, records. Unica condizione è quella che se un file.
RossiUgo /8796 BianchiCarlo /8746 II I Sia dato un file di testo riguardante un insieme di studenti di cui è.
Script bash I file di comandi in Linux. BASH  Bourne Again Shell  Modalità interattiva o batch (file di comandi)  Ambiente di programmazione “completo”
1 ELEMENTI DI INFORMATICA Università degli Studi di Cagliari Corso di Laurea in Ingegneria Elettronica Linguaggio C A.A. 2011/2012
Amministrazione di reti di calcolatori - Massimo Bertozzi Shell e scripting.
IL CONCETTO DI ALGORITMO
I FILES AD ACCESSO SEQUENZIALE
Tipi di Shell sh – Bourne shell csh – C shell ksh – Korn shell
Un editor intelligente!!!
Programmazione e Laboratorio di Programmazione
Programmazione e Laboratorio di Programmazione
Transcript della presentazione:

FILE TESTO INPUT PROGRAMMA + DATI OUTPUT FILE DATI PROGRAMMA OUTPUT CARICAMENTO DATI FILE DATI OUTPUT INPUT PROGRAMMA

UN FILE TESTO NON SI COMPILA PERCHE’ NON E’ UN PROGRAMMA !!!! I File testo si possono caricare e modificare con un Editor ad Es. quello del Turbo Pascal, il Word, Note Pad purchè vengano salvati come file testo (suffisso .txt), o con un appropriato programma Pascal. - Contiene caratteri leggibili - E’ etichettato con un nome - Ha un indirizzo sull’unità di memoria di massa Esempio La vispa Teresa avea tra l’erbetta a volo sorpresa gentil farfalletta In ogni programma Pascal ogni file è identificato attraverso una variabile. PROGRAM EcoFile(output, InFile); VAR Infile : text; Carattere: char; {usato per estrarre i caratteri dal testo} BEGIN ………….. END. UN FILE TESTO NON SI COMPILA PERCHE’ NON E’ UN PROGRAMMA !!!!

APERTURA DI UN FILE procedure ( , ) assign ( Identificatore file , Nome file ) assign (IdentificatoreFile,NomeFile) assign( ProvaF, ’C:\TP\ESEMPI\TESTO.TXT'); PROGRAM EcoFile(output, ProvaF); VAR ProvaF : text; } BEGIN assign( ProvaF, ’C:\TP\ESEMPI\TESTO.TXT'); ………….. END.

reset (IdentificatoreFile) LETTURA DI UN FILE Un file non può essere letto e scritto contemporaneamente. La procedura reset prepara il file alla lettura. La chiamata alla procedura reset può variare da dialetto a dialetto. reset ( ) Identificatore file procedure VAX e standard Pascal reset(Testo) TURBO PASCAL assign(Infile,’TESTO.txt’) reset(Infile,’TESTO.txt’) APPLE PASCAL reset (IdentificatoreFile) prepara file per la lettura reset( ProvaF); L a v i s p T

L a v i s p T eoln e r t .. eof FILE TESTO Esempio La vispa Teresa Il file testo (.txt) è caratterizzato dall’avere un carattere speciale quando termina un rigo, detto: eoln (end-of-line); e da un carattere speciale che indica la fine del file detto: eof (end-of-file) Esempio La vispa Teresa avea tra l’erbetta a volo sorpresa gentil farfalletta Struttura del file testo L a v i s p T eoln e r t .. eof

L a v i s p L a L a eof eoln Posizione e contenuto della finestra di lettura dopo il reset(ProvaF). Posizione e contenuto della finestra di lettura dopo readln(ProLett,Carattere); write(Carattere); L a eof eoln readln(Prolett,Carattere) eoln(Prolett) FALSE TRUE

Terminata la lettura di una riga PROGRAM ProvaFiles(input,output,ProLett); {legge dal file TESTO i caratteri uno alla volta e li mostra a video} VAR ProLett: text; Carattere: char; BEGIN assign(ProLett,'C:\TP\ESEMPI\TESTO.TXT'); reset(ProLett); WHILE NOT eof(ProLett) DO WHILE NOT eoln(ProLett) DO read(ProLett,Carattere); write(Carattere) END; readln(ProLett); writeln; readln END. Terminata la lettura di una riga bisogna andare a capo

T eoln a s e r input False T ? 1° False e T 2° False r e 3° False e r 4° False s e 5° False a s 6° True eoln a Valori Finestra input eoln Ch letto Ch mostrato

rewrite (IdentificatoreFile) SCRITTURA DI UN FILE La procedura rewrite prepara il file alla lettura. La chiamata alla procedura rewrite può variare da dialetto a dialetto e risulta operativa solo se il file aperto cui essa fa riferimento non contiene alcun carattere. Quando si scrive un file si presuppone sempre di comnciare dall’inizio del file. Se questo avesse già un contenuto questo verrebbe sovrascritto. Identificatore file rewrite ( ) rewrite (IdentificatoreFile) rewrite( ProvaF); prepara file per la scrittura

close (IdentificatoreFile) SCRITTURA DI UN FILE close ( ) Identificatore file procedure close (IdentificatoreFile) Si può copiare un file in un altro anche leggendo un rigo alla volta close( Prodat); CHIUSURA DI UN FILE Dopo avere scritto un file è necessario chiuderlo. La procedura close(InFile) chiude il file identificato dalla variabile InFile

PROGRAM ProvaFiles(input,output,ProInput,ProOut); {esempio di lettura e scrittura di files} {legge dal file TESTO una stringa Stringa e la scrive su COPIA} CONST LungMax=80; {massima lunghezza permessa alle stringhe } TYPE Stringa=STRING[LungMax]; {dipende dal dialetto} VAR ProInput,ProOut: text; {identificatori dei file di lettura e scrittura} Rigo: Stringa; {linea del testo letta e riscritta} BEGIN assign(ProInput,'C:\TP\ESEMPI\TESTO.TXT'); assign(ProOut,'C:\TP\ESEMPI\COPIA.TXT'); reset(ProInput); {prepara file per la lettura} rewrite(ProOut); {prepara file per la scrittura} WHILE NOT eof(ProInput) DO {verifica che non sia finito il file} readln(ProInput,Rigo); {leggi il rigo} writeln(ProOut,Rigo) {scrivi il rigo} END; close(ProInput); {chiudi il file di input} close(ProOut); {chiudi il file di output} writeln('File Duplicato '); readln END.

In lettura i caratteri vengono letti uno alla volta (read) o a gruppi (readln) e la finestra di lettura si comporta come prima descritto. In scrittura i caratteri letti vengono messi in un buffer del file rappresentato dal nome della variabile del file. Il buffer contiene una riga del testo, cioè dall’inizio fino a <eoln>. Con write leggiamo carattere per carattere e lo aggiungiamo nel buffer. Con writeln prima carichiamo il buffer con una riga di testo e poi scarichiamo il suo contenuto sul file di uscita aggiungendo automaticamente alla fine un <eol>. A questo punto il buffer si riempie di spazi vuoti ed è pronto a continuare la lettura. Con un read o readln la finestra di lettura fa sempre un passo avanti. Con un write o writeln si aggiunge sempre un carattere al buffer.

ALGORITMI PER IL TRATTAMENTO DI FILE TESTO read mode L a v i s p Finestra di lettura Variabile NomeFile InFile alla elaborazione write mode v i s p a buffer invio Variabile NomeFile OutFile eoln L

PROGRAM MostraFile(VispaTeresa, output); {mostra il contenuto di un file su monitor} VAR VispaTeresa: text; BEGIN assign(VispaTeresa,’C:\TP\ESEMPI\TESTO.txt’) reset(VispaTeresa); CopiaFile(VispaTeresa,output); close(VispaTeresa); END. PROCEDURE CopiaFile(VAR InFile,OutFile:text); {i file InFile e OutFile sono già stati preparati per essere letti e scritti} VAR Carattere: char; {carattere da leggere da InFile} BEGIN WHILE NOT eof(InFile) DO {verifica che non sia finito il file} WHILE NOT eoln(InFile) DO read(InFile,Carattere); {leggi il carattere} write(OutFile,Carattere) {scrivi il carattere} END; readln(InFile); writeln(OutFile) END

CREAZIONE DI UN FILE TESTO DA TASTIERA PROGRAM Digitato(input, output, FileDigitato); {crea un file da tastiera e poi lo mostra } VAR FileDigitato: text; Risposta : char; {per rispondere al quesito} PROCEDURE Istruzioni; BEGIN writeln(‘Alla fine della digitazione premere CONTROL Z per chiudere il file) END; PROCEDURE CopiaFile(VAR InFile,OutFile: text); ********************* {************* MAIN ********************} BEGIN assign(FileDigitato,’C:/TP/ESEMPI/TESDIG.TXT); rewrite(FileDigitato); CopiaFile(input, FileDigitato); close(FileDigitato); reset(input); {necessario per alcuni dialetti} write(‘Copia eseguita. Vuoi rivedere il testo ? S/N’); readln(Risposta); IF Risposta IN[‘S’,’s’] THEN writeln; reset(FileDigitato); CopiaFile(FileDigitato,output) END; END.

LETTURA DEL NOME DEL FILE DURANTE L’ELABORAZIONE COPIA DI DUE FILE IN UNO PROGRAM CopiaDueFile(output;Teresa, Giacomo, TerGiac); VAR Teresa, Giacomo, TerGiac: text; PROCEDURE CopiaFile(VAR InFile, OutFile: text); BEGIN ******************* END; assign(Teresa,’C/TP/ESEMPI/TESTO1.txt’); assign(Giacomo,’C/TP/ESEMPI/TESTO2.txt’); assign(TerGiac,’C/TP/ESEMPI/TESTO3.txt’); rewrite(TerGiac); reset(Teresa); CopiaFile(Teresa,TerGiac); writeln(TerGiac); reset(Giacomo); CopiaFile(Giacomo,TerGiac); writeln(‘ FINE’); close(TerGiac) END. LETTURA DEL NOME DEL FILE DURANTE L’ELABORAZIONE PROCEDURE ChiamaFile(VAR NomeFile: StringType; VAR UnFile: text); BEGIN write(‘ Dammi il nome del file da elaborare: ‘); readln(NomeFile); assign(UnFile, NomeFile) END;

USO DELLA FUNZIONE eoln Il valore di default della funzione eoln è il file input, cioè se non è dichiarato il nome del file, allora la funzione eoln sarà vera quando battiamo il tasto invio. In questo caso sia per eoln che per read o readln non è necessario mettere il parametro relativo al file. Lettura di un rigo di un file carattere per carattere WHILE NOT eoln(UnFile) DO read(UnFile, Carattere) elabora carattere Senza questa istruzione se c’è un altro read verrà letto un blank. readln(UnFile) {azzera la finestra di lettura} Alla fine del loop tutti i caratteri del rigo sono stati letti e il carattere eoln è il nuovo candidato ad essere letto. Questo provoca la lettura di uno spazio che in realtà non esiste. Per evitare questo si pone readln(UnFile)

ESEMPIO Contare il numero di caratteri digitati e il numero degli spazi. ContaSpazi:=0; ContaCaratteri:=0; WHILE NOT eoln DO BEGIN read(Carattere); ContaCaratteri:=ContaCaratteri+1; IF Carattere = ‘ ‘ THEN ContaSpazi:=ContaSpazi+1; END; readln; write(‘Il numero di caratteri totali digitati e’’’,ContaCaratteri, ‘di cui ’,ContaSpazi,’ spazi.’); Notare che abbiamo usato il file di default input. Leggere caratteri fin quando non si incontra eoln Trovare il primo carattere diverso da blank Carattere  ‘ ‘; IF NOT eoln(UnFile) THEN read(UnFile, Carattere); ELSE Carattere  ‘ ‘ Carattere  ‘ ‘; WHILE (Carattere =‘ ‘) AND NOT eoln(UnFile) DO read(UnFile, Carattere); readln;