I File di testo in Pascal

Slides:



Advertisements
Presentazioni simili
INFORMATICA Altre Istruzioni di I/O
Advertisements

1 Leggere e scrivere dati da file Giorgio Valentini e –mail: DSI – Dipartimento di Scienze dell Informazione Università degli Studi.
Shell: variabili di sistema PATH HOME USER PWD SHELL HOSTNAME HOSTTYPE Per visualizzare il valore di tutte le variabili dambiente si usa il comando set.
INFORMATICA Algoritmi fondamentali
Nel sistema operativo MS-DOS il comando cd.. (change directory), serve a cambiare cartella. Il comando rd (remove directory), serve a rimuovere una cartella.
Esercizio Usate il ciclo repeat until (controllo post condizionale) per simulare il prodotto N x M con M somme di N. Esempio: 5 x 3 equivale a fare 5 +5.
Informatica 22/03/2012.
CAPITOLO 2.
LS Tron Classe 4TC – as 2006/07 LORGANIZZAZIONE DEI PROGRAMMI UD. 8 p. 282.
PROGRAMMARE IN PASCAL (le basi)
Le funzioni UD. 8 – Lorganizzazione dei programmi p. 309 LS Tron 4TC 06/07.
MATLAB.
MATLAB. Scopo della lezione Programmare in Matlab Funzioni Cicli Operatori relazionali Esercizi vari.
Algoritmi e Programmazione
Informatica Generale Marzia Buscemi
numero rette n numero parti piano f(n) f(n -1)n -1 f(n -1) + nn numero parti piano f(n) numero rette n.
Interfaccia del file system
Programmazione Procedurale in Linguaggio C++
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.
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.
File.
Università degli Studi di Bergamo Facoltà di Lingue e Letterature Straniere Facoltà di Lettere e Filosofia A.A Informatica generale 1 Appunti.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab m-file m-file script script Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali.
MATLAB. …oggi… Programmare in Matlab Programmare in Matlab Funzioni Funzioni Cicli Cicli Operatori relazionali Operatori relazionali Esercizi vari Esercizi.
Ricorsione e Debug.
Cosè un programma? LALA PROGRAMMAZIONE PROGRAMMAZIONELALA PROGRAMMAZIONE PROGRAMMAZIONE UN ELENCO DI ISTRUZIONI, APPARTENENTI A UN BEN DEFINITO LINGUAGGIO,
Introduzione agli stream e alle classi
Il linguaggio Fortran 90: 4. Array: Vettori e Matrici
Il linguaggio Fortran 90: 2. Istruzioni di Controllo
Il linguaggio Fortran 90: 5. Formato di I/O e Files
Introduzione alla programmazione lll
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.
nome: sequenza di caratteri usata per denotare un oggetto
Esercitazioni sui File Nicola Fanizzi - DIB Corso (B) di Programmazione CdL in Informatica – I livello A.A. 2003/2004.
Organizzazione del corso
Istruzioni Iterative Nicola Fanizzi
File di testo, file binari
Problema Ci sono 5 signore nel parco. Ognuna di loro ha 1 figlio. Ogni bambino ha 10 figurine di calciatori, per un totale quindi di 50 figurine. Questi.
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.
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.
I File.
Corso di PHP.
Programmazione in Java
File I record.
File ad accesso casuale o random
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
Lo sviluppo del software e i linguaggi di programmazione
I numeri di Fibonacci.
1 Gestione dei File. 2 Perché i file? Sono strutture dati persistenti Sono solitamente memorizzati sui dischi –Si usano dall'interno dei programmi Realizzano.
La comunicazione uomo … macchina
Problema: come dividere due numeri
TURBOPASCAL …. ripassiamo - prof. V. Riboldi -.
GLI ARCHIVI SEQUENZIALI
Programmazione in linguaggio C
Javascript Istruzioni di ciclo: for(inizio; condizione; incremento ) {blocco istruzioni} istruzione seguente; – inizio e incremento possono contenere più.
Capitolo 6 Iterazione Lucidi relativi al volume: Java – Guida alla programmazione James Cohoon, Jack Davidson Copyright © The McGraw-Hill Companies.
File binari Accesso a file con record di lunghezza costante Struct Persona { Int id; Char nome[50];// nome e cognome Double stipendio; }; Persona dipendente;
Lez. 9 (13/14)Elementi di Programmazione1 Lezione 9 Valutazione di espressioni File di testo sequenziali.
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.
Operatori di incremento e decremento
Interpreti e compilatori
Linguaggio C: Le basi Stefano Cagnoni e Monica Mordonini
Informatica e Informatica di Base
Il Sabato del villaggio
Files in C++ Motivazioni Un programma in esecuzione legge (sequenzialmente) una sequenza di caratteri prodotti "al volo" dall'utente (tramite tastiera)
Transcript della presentazione:

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

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)

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.

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

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 dell’ultima riga c’è anche un terzo carattere: EOF (End Of File) (ASCII 26 o CTRL-Z) L’inizio del file viene poi indicato con BOF (Begin Of File)

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

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

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)

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)

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 nell’aggiunta, posso inserire l’istruzione WRITELN(F, ‘stringa fissa o variabile’) all’interno di cicli di varia natura (FOR o REPEAT …)

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; L’istruzione di lettura della riga è: READLN(F, RIGA)

Lettura dell’intero file Per poter leggere l’intero 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 l’ultimo carattere è l’EOF Per cui WHILE NOT EOF(F) DO BEGIN READLN(F, RIGA); ….. <trattamento sulla riga, es. visualizzazione> END;

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 L’istruzione però sarà READ(F, c) dove c è una variabile di tipo char (al posto di READLN(F, s) con s:STRING)

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

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 // leggi il carattere: ATTENZIONE: READ e non readln read(testo,c); write(c); i:=i+1; if c=' ' then b:=b+1; end;

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.