La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

I File di testo in Pascal Prof. Carla Fanchin LS Tron – ITCG Pasini.

Presentazioni simili


Presentazione sul tema: "I File di testo in Pascal Prof. Carla Fanchin LS Tron – ITCG Pasini."— Transcript della presentazione:

1 I File di testo in Pascal Prof. Carla Fanchin LS Tron – ITCG Pasini

2 I file I file sono sequenze di bit memorizzate in memoria di massa (ad es. su disco fisso) In quanto tali hanno carattere permanente Ogni file ha un Nome ed un Estensione (solitamente di tre caratteri) che ne specifica la tipologia (es:.PAS file sorgente Pascal)

3 Come si creano i file ? I file vengono generati da varie applicazioni: ad es. Word genera file di tipo.DOC, Excel genera file di tipo.XLS e così via. Anche gli ambienti integrati di sviluppo (IDE) come il Dev Pascal creano file: ad es. quando si salva il programma sorgente, viene creato un file.PAS.

4 File creati da programmi Anche un programma Pascal, una volta mandato in esecuzione, può creare un file. Ad esempio un file di testo I file di testo si possono aprire poi con il Blocco Note Un file di testo è formato da un insieme di RIGHE

5 Il Formato dei file di testo I file di testo contengono alcuni caratteri speciali: Al termine di ogni riga ci sono 2 caratteri ASCII non visibili: CR e LF CR=Carriage Return (ASCII 13) LF=Line Feed (ASCII 10) Al termine dellultima riga cè anche un terzo carattere: EOF (End Of File) (ASCII 26 o CTRL-Z) Linizio del file viene poi indicato con BOF (Begin Of File)

6 Utilizzo dei file di testo VAR F:TEXT; Occorre dichiarare una variabile (con un nome qualsiasi, in questo caso F, di tipo TEXT F sarà il NOME LOGICO con il quale il file verrà trattato nel programma Poiché però il file verrà memorizzato effettivamente su memoria di massa, occorrerà anche ASSOCIARLO ad un file vero e proprio

7 Associazione del nome logico al nome fisico Si fa tramite il comando: ASSIGN(F, stringaPercorsoENome) Es: ASSIGN (F, C:\PASCAL\FILE\POESIA.TXT) NB:NON mettete spazi o caratteri strani nei nomi dei file o nei percorsi !!!!!!!!!!!!!!!! Ogni volta che tratteremo, da programma il file di nome F, in realtà lavoreremo sul file POESIA.TXT che si trova nella sottocartella FILE della cartella PASCAL del disco fisso

8 Creazione del file (Poesia Il sabato del villaggio di G.Leopardi) Il file va aperto in scrittura (NB distruttiva !) REWRITE(F) Vanno poi scritte una o più righe WRITELN(F, stringa) es. WRITELN(F, La donzelletta vien dalla campagna) WRITELN(F, in sul calar del sole,) E così via per le altre righe: col suo fascio dell'erba; e reca in mano un mazzolin di rose e viole, onde, siccome suole, ornare ella si appresta dimani, al dí di festa, il petto e il crine. Alla file il File va chiuso (aggiunta del carattere EOF) CLOSE(F)

9 Precisazione La stringa che scrivo in ogni riga non deve essere necessariamente una costante (tra apici); potrebbe essere anche una variabile, di tipo stringa, valorizzata in modo qualsiasi: VAR riga:STRING; WRITELN(F, RIGA); Addirittura il nome fisico del file potrebbe essere una variabile (VAR NomeFisico:STRING) ASSIGN(F, NomeFisico)

10 Append Nel caso si volessero aggiungere nuove righe in coda ad un file già esistente, occorrerebbe aprirlo NON con REWRITE ma con APPEND(F) NB. Se il file non esiste, lo crea Naturalmente, sia nella scrittura che nellaggiunta, posso inserire listruzione WRITELN(F, stringa fissa o variabile) allinterno di cicli di varia natura (FOR o REPEAT …)

11 LETTURA DEL FILE Per aprire il file in lettura si utilizza il comando: RESET(F) Poiché il contenuto del file viene letto, RIGA PER RIGA, da memoria di massa, occorre definire una variabile contenitore per ricevere di volta in volta la riga letta es. VAR riga:STRING; Listruzione di lettura della riga è: READLN(F, RIGA)

12 Lettura dellintero file Per poter leggere lintero file è necessario leggere tutte le righe con un ciclo. Spesso non sappiamo di quante righe si tratta (escludiamo quindi il ciclo FOR) Ma sappiamo che lultimo carattere è lEOF Per cui WHILE NOT EOF(F) DO BEGIN READLN(F, RIGA); ….. END;

13 Esame carattere per carattere di ogni riga E anche possibile esaminare i caratteri di ogni riga del testo utilizzando la funzione: EOL(F) End Of Line Listruzione però sarà READ(F, c) dove c è una variabile di tipo char (al posto di READLN(F, s) con s:STRING)

14 Esempio (1) program provatxt; var testo:text; c:char; i,tot,b,totb:integer; begin assign(testo,'C:\devpascal\filetext\dante.txt'); reset(testo); …..

15 Esempio (2) // finchè non è finito il file (per ogni riga del file) while not eof(testo) DO begin i:=0; b:=0; // finchè non è finita la riga // (per ogni carattere della riga) while not(eoln(testo)) do begin // leggi il carattere: ATTENZIONE: READ e non readln read(testo,c); write(c); i:=i+1; if c=' ' then b:=b+1; end;

16 Esempio (3) // ora ha finito la riga e deve andare a capo, // per leggere la prossima readln(testo); (attenzione: READLN e non READ) writeln(' ',i,' caratteri ',b,' spazi'); tot:=tot+i; totb:=totb+b; end; writeln('Il testo contiene in tutto ', tot,' caratteri e ',totb,' spazi o blanks'); close(testo); readln; end.


Scaricare ppt "I File di testo in Pascal Prof. Carla Fanchin LS Tron – ITCG Pasini."

Presentazioni simili


Annunci Google