I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o...

34
I record I record File File

Transcript of I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o...

Page 1: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

I recordI record

File File

Page 2: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

I record I record Il record è una struttura dati che contiene Il record è una struttura dati che contiene

informazioni di tipo diverso o eterogenee.informazioni di tipo diverso o eterogenee. Fino a questo momento abbiamo trattato Fino a questo momento abbiamo trattato

variabili di memoria, strutture dati variabili di memoria, strutture dati (vettori e matrici, liste, pile code ect.) atte (vettori e matrici, liste, pile code ect.) atte a contenere dati di tipo omogeneo.a contenere dati di tipo omogeneo.

Ovviamente le strutture dati che Ovviamente le strutture dati che contengono dati di tipo omogeneo non ci contengono dati di tipo omogeneo non ci permettono di risolvere al meglio i permettono di risolvere al meglio i molteplici problemi che dobbiamo trattare molteplici problemi che dobbiamo trattare e automatizzare.e automatizzare.

Page 3: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Tracciato record Tracciato record La struttura dati che serve a contenere dati La struttura dati che serve a contenere dati

di un oggetto complesso e detta di un oggetto complesso e detta Record Record in inglese record significa in inglese record significa registrazione.registrazione. Per rappresentare un record accorre Per rappresentare un record accorre

stabilire , quali sono le unità elementari stabilire , quali sono le unità elementari che lo compongono , i che lo compongono , i campicampi e le e le caratteristiche, si definisce così il caratteristiche, si definisce così il tracciato tracciato record. record. Per ogni campo si dovrà indicare :Per ogni campo si dovrà indicare : NomeNome TipoTipo

Page 4: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Il tracciato record ACQUISTI (ipotizzando un record sugli acquisti di merci ) sarà graficamente rappresentato : Nome record : acquisti

CODICE_ART

DESCRIZ QUANT

PU AL

ALFA(5) ALFA(30) NUM NUM NUM

Page 5: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Un record viene definito in VB come una struttura dati e la descrizione deve iniziare con la parola TYPE.

PUBLIC TYPE ACQUISTI CODICE_ART as string *5

DESCRIZ as string*30QUANT as integerPU as currencyAL as byte

END TYPE

PUBLIC MERCI AS ACQUISTI

poiché col TYPE definiamo solo la struttura dati è necessario definire una variabile il cui tipo è la

struttura dati

Page 6: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Altro metodo per dichiarare Altro metodo per dichiarare il recordil record

TYPE ACQUISTITYPE ACQUISTICODICE_ART CODICE_ART as string *5as string *5DESCRIZ as string*30DESCRIZ as string*30QUANT as integerQUANT as integerPU as currencyPU as currencyAL as byteAL as byte

END TYPEEND TYPE

PUBLIC MERCI AS ACQUISTI PUBLIC MERCI AS ACQUISTI

Page 7: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Dichiarazione in VB Dichiarazione in VB in VISUAL BASIC la descrizione di una struttura dati in VISUAL BASIC la descrizione di una struttura dati

di tipo record deve essere dichiarata a livello di di tipo record deve essere dichiarata a livello di modulo.modulo.

All’interno del programma Visual Basic i campi del All’interno del programma Visual Basic i campi del record verranno identificati con l’identificatore della record verranno identificati con l’identificatore della variabile di tipo record e con l’identificatore di campo variabile di tipo record e con l’identificatore di campo separato da un punto :separato da un punto :

ES. ES. MERCI.CODICE_ART, MERCI.DESCRIZ MERCI.CODICE_ART, MERCI.DESCRIZ Quando occorre accedere a più campi dello stesso Quando occorre accedere a più campi dello stesso

record per inserire valori nei campi o per record per inserire valori nei campi o per visualizzarne il contenuto, è utile usare l’istruzione visualizzarne il contenuto, è utile usare l’istruzione WITH WITH

Page 8: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Esempio di Esempio di codicecodice

WITH MERCIWITH MERCI.CODICE_ART.CODICE_ART

.DESCRIZ.DESCRIZ.QUANT.QUANT

.PU.PU

.AL.ALEND WITHEND WITH

Page 9: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

I file di I file di datidati

Archiviazione dei datiArchiviazione dei dati

Page 10: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

I fileI file Il termine file stà ad indicare tutto ciò che Il termine file stà ad indicare tutto ciò che

può essere registrato su memoria di massa.può essere registrato su memoria di massa. abbiamo lavorato con abbiamo lavorato con variabili di memoria, variabili di memoria,

strutture dati (vettori , matrici, array di strutture dati (vettori , matrici, array di record ) i cui dati risiedevano in memoria record ) i cui dati risiedevano in memoria centrale e non potevano essere riutilizzati centrale e non potevano essere riutilizzati per successive elaborazioni.per successive elaborazioni.

Le informazioni all’interno dell’archivio Le informazioni all’interno dell’archivio sono organizzate in RECORD (o struttura sono organizzate in RECORD (o struttura dati) e all’interno del record l’informazione dati) e all’interno del record l’informazione è suddivisa in CAMPI ed ancora i campi è suddivisa in CAMPI ed ancora i campi possono essere suddivisi in SOTTOCAMPI possono essere suddivisi in SOTTOCAMPI (o unità elementari del record).(o unità elementari del record).

Page 11: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Possiamo dire che il FILE è un’insieme Possiamo dire che il FILE è un’insieme di record legati da un nesso logico, nel di record legati da un nesso logico, nel senso di informazioni organizzate in senso di informazioni organizzate in un archivio.un archivio.

Il file è quindi una struttura di dati Il file è quindi una struttura di dati che realizza concretamente nella che realizza concretamente nella memoria di massa la struttura di memoria di massa la struttura di tabella definite in M.C. (memoria tabella definite in M.C. (memoria centrale)centrale)

Page 12: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

File fisici e file logiciFile fisici e file logici

Il concetto di file può essere Il concetto di file può essere analizzato a due livelli diversi :analizzato a due livelli diversi :

LogicoLogico

fisicofisico

Page 13: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

1° record 2° record 3° record n° record

File logicoFile logico

Inizio del file Fine del file

A livello software del programmatore, un file logico è una sequenza di record (registrazioni) logici

Page 14: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

File fisicoFile fisico

A livello hardware delle memorie di massa, un file fisico è una sequenza Di bit memorizzati su supporti di memoria tramite opportune Tecnologie (ottiche, magnetiche, ecc…)

Page 15: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Il programmatoreIl programmatore

Deve occuparsi dell’aspetto softwareDeve occuparsi dell’aspetto software

Tutte le procedure per passare dal Tutte le procedure per passare dal file logico a un archivio fisico su file logico a un archivio fisico su disco, sono inserite in modo disco, sono inserite in modo automatico dal compilatore linkerautomatico dal compilatore linker Che richiama opportune procedure e Che richiama opportune procedure e

funzioni del S.O. , esattamente del funzioni del S.O. , esattamente del FILE SYSTEM FILE SYSTEM

Page 16: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

File ad organizzazione File ad organizzazione sequenzialisequenziali

L’organizzazione sequenziale.L’organizzazione sequenziale. Questa organizzazione è usata per Questa organizzazione è usata per

archivi di piccole dimensioni.archivi di piccole dimensioni. Nei file sequenziali i dati vengono Nei file sequenziali i dati vengono

inseriti uno di seguito all’altro inseriti uno di seguito all’altro (sequenziale) (sequenziale)

il ritrovamento dei record avviene il ritrovamento dei record avviene allo stesso modo , scandendo i record allo stesso modo , scandendo i record dal primo fino alla fine del filedal primo fino alla fine del file..

Page 17: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Operazioni fondamentali Operazioni fondamentali

Le operazioni Le operazioni fondamentalifondamentali da fare da fare sugli archivi sono :sugli archivi sono : Creazione /inserimento (scrittura sul Creazione /inserimento (scrittura sul

file )file ) Lettura di record (questa operazione Lettura di record (questa operazione

precede quella di modifica)precede quella di modifica) Modifica Modifica

Riscrittura Riscrittura Cancellazione (logica)Cancellazione (logica)

Page 18: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Operazioni accessorieOperazioni accessorie

Le operazioni accessorie possono Le operazioni accessorie possono essere svariate a seconda delle essere svariate a seconda delle esigenze della realtà che si vuole esigenze della realtà che si vuole automatizzare :automatizzare :

Stampe di diverso tipoStampe di diverso tipo Visualizzazioni di diverso tipoVisualizzazioni di diverso tipo Varie elaborazioni Varie elaborazioni

Page 19: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Operazione di aperturaOperazione di apertura stabilisce il collegamento fra la MC stabilisce il collegamento fra la MC

(memoria centrale) e il file registrato su (memoria centrale) e il file registrato su disco o memoria di massa. disco o memoria di massa.

In MC al momento dell’apertura del file In MC al momento dell’apertura del file viene riservata una zona viene riservata una zona BUFFERBUFFER utilizzata utilizzata per le operazioni di input/output per le operazioni di input/output

nella tabella dei descrittori dei file sono nella tabella dei descrittori dei file sono memorizzate le informazioni per accedere ai memorizzate le informazioni per accedere ai blocchi fisici del disco che contengono i dati. blocchi fisici del disco che contengono i dati.

L’operazione di apertura deve precedere L’operazione di apertura deve precedere qualsiasi altra operazionequalsiasi altra operazione

Page 20: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Apertura del file in VBApertura del file in VB In VB l’istruzione per l’apertura del flusso è la In VB l’istruzione per l’apertura del flusso è la

seguente :seguente :

OPEN percorso/nomefile OPEN percorso/nomefile FOR FOR (output/input/append) AS numerofile (output/input/append) AS numerofile [len = dimensione buffer] [len = dimensione buffer] I parametri inseriti fra parentesi quadre I parametri inseriti fra parentesi quadre

sono opzionalisono opzionali

ES. ES. open “a:\Ivdp\acquisti.dat” for output as open “a:\Ivdp\acquisti.dat” for output as

##11

Page 21: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

L’operazione di apertura si è detto precede tutte le L’operazione di apertura si è detto precede tutte le altre, quando il file Viene aperto si verificano le altre, quando il file Viene aperto si verificano le

seguenti azioni :seguenti azioni :

Viene controllato se il file esiste, in caso Viene controllato se il file esiste, in caso contrario se ne crea uno nuovo nel percorso contrario se ne crea uno nuovo nel percorso specificatospecificato

viene creato un’ area Buffer in MC . viene creato un’ area Buffer in MC . Il Buffer è un’area di memoria temporanea dove Il Buffer è un’area di memoria temporanea dove

vengono memorizzati i record vengono memorizzati i record quando l’area Buffer è satura i record quando l’area Buffer è satura i record

vengono fisicamente scaricati nel disco è vengono fisicamente scaricati nel disco è cioè all’interno dell’archivio.cioè all’interno dell’archivio.

Viene creato un puntatore di file impostato Viene creato un puntatore di file impostato all’inizio del file sia per la modalità di all’inizio del file sia per la modalità di apertura apertura INPUT INPUT OUTPUT OUTPUT

tranne per la modalità APPEND dove il tranne per la modalità APPEND dove il puntatore punta alla fine del file. puntatore punta alla fine del file.

Page 22: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Il puntatore viene sempre aggiornato per Il puntatore viene sempre aggiornato per indicare la sua posizione corrente nel fileindicare la sua posizione corrente nel file

Al file viene assegnato un numero di file (# Al file viene assegnato un numero di file (# 1) per potervi fare riferimento.1) per potervi fare riferimento.

A ciascun file usato nel progetto deve A ciascun file usato nel progetto deve poter essere assegnato un numero di file poter essere assegnato un numero di file univoco. univoco.

Dopo che il file è stato chiuso, quel numero Dopo che il file è stato chiuso, quel numero può essere assegnato a un altro file . può essere assegnato a un altro file .

I numeri di file ammessi sono da 1 a 511.I numeri di file ammessi sono da 1 a 511. Con l’apertura si definisce anche il tipo di Con l’apertura si definisce anche il tipo di

organizzazione dell’archivio.organizzazione dell’archivio.

Page 23: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Operazione di chiusura Operazione di chiusura del filedel file

Con l’operazione di chiusura del file si Con l’operazione di chiusura del file si chiude il collegamento tra la MC chiude il collegamento tra la MC ( esattamente dell’area Buffer e si libera ( esattamente dell’area Buffer e si libera lo spazio occupato) e la memoria di lo spazio occupato) e la memoria di massa che contiene il file di dati.massa che contiene il file di dati.

L’istruzione usata è la : CLOSE L’istruzione usata è la : CLOSE numerofile (o l’elenco di più file da numerofile (o l’elenco di più file da chiudere separati dalla virgola)chiudere separati dalla virgola) ES: close #1ES: close #1

Page 24: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Operazioni Operazioni

Operazioni fondamentaliOperazioni fondamentali

Page 25: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Operazione di scritturaOperazione di scrittura

Con questa operazione trasferiamo Con questa operazione trasferiamo sulla memoria di massa i dati sulla memoria di massa i dati presenti in MC.presenti in MC.

Le modalità di apertura del file per Le modalità di apertura del file per la scrittura sono 2 :la scrittura sono 2 :

OUTPUTOUTPUT APPENDAPPEND

Page 26: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Apertura in modalità Apertura in modalità OUTPUTOUTPUT

Con la modalità Con la modalità outputoutput viene creato viene creato un nuovo file di dati. un nuovo file di dati.

Se il file esisteva i dati Se il file esisteva i dati precedentemente inseriti vengono precedentemente inseriti vengono persi e vengono inseriti i nuovi record. persi e vengono inseriti i nuovi record.

Questo tipo di apertura si dice Questo tipo di apertura si dice distrugga il contenuto precedente del distrugga il contenuto precedente del file, pertanto viene generalmente file, pertanto viene generalmente utilizzato per azzerare l’archivio.utilizzato per azzerare l’archivio.

Page 27: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Modalità di apertura in Modalità di apertura in AppendAppend

Con la modalità Con la modalità appendappend i record vengono inseriti i record vengono inseriti in coda a quelli esistenti. in coda a quelli esistenti.

il puntatore si trova nella fine del file se il puntatore si trova nella fine del file se nell’archivio sono presenti altri record nell’archivio sono presenti altri record

si trova all’inizio del file se stiamo facendo il si trova all’inizio del file se stiamo facendo il primo inserimentoprimo inserimento

Questa modalità di apertura ci permette di creare Questa modalità di apertura ci permette di creare si l’archivio ma anche di fare nuovi inserimenti.si l’archivio ma anche di fare nuovi inserimenti.

Con i tipi di apertura (output/append) utili per la Con i tipi di apertura (output/append) utili per la scrittura di record attiviamo il collegamento fra scrittura di record attiviamo il collegamento fra MC e memoria di massaMC e memoria di massa

Page 28: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

le istruzione che permettono il le istruzione che permettono il trasferimento dei dati dalla MC trasferimento dei dati dalla MC

alla memoria di massa sonoalla memoria di massa sono WriteWrite PrintPrint

L’istruzione print è la seguente :L’istruzione print è la seguente : PRINT # numerofile, datoPRINT # numerofile, dato numerofilenumerofile identifica il file su cui scrivere identifica il file su cui scrivere

attraverso il attraverso il numero assegnato con l’istruzione opennumero assegnato con l’istruzione open datodato indica il nome contenente il campo da indica il nome contenente il campo da

registrareregistrare ES. ES. riferendoci al record definito in riferendoci al record definito in

precedenza possiamo scrivere la seguente precedenza possiamo scrivere la seguente istruzione : istruzione : print #1,merci.codice_art, merci.descriz, print #1,merci.codice_art, merci.descriz,

merci.quant, merci.pu, merci.almerci.quant, merci.pu, merci.al

Page 29: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Istruzione writeIstruzione write L’istruzione write (quella che si consiglia L’istruzione write (quella che si consiglia

di usare ) è la seguente :di usare ) è la seguente : WriteWrite #numerofile, campo1,campo2 , #numerofile, campo1,campo2 ,

campo3 ect.campo3 ect. 1) 1) numerofilenumerofile identifica il file su cui scrivere identifica il file su cui scrivere

attraverso il attraverso il

numero assegnato con l’istruzione opennumero assegnato con l’istruzione open 2) 2) campo1,campo2,campo3campo1,campo2,campo3 indica il nome contenente indica il nome contenente

il campo da registrareil campo da registrare

ES. ES. riferendoci al record definito in riferendoci al record definito in precedenza possiamo scrivere la seguente precedenza possiamo scrivere la seguente istruzione write :istruzione write :

write #1,merci.codice, merci.descriz, write #1,merci.codice, merci.descriz, merci.quant, merci.pu, merci.almerci.quant, merci.pu, merci.al

Page 30: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Lettura dei dati Lettura dei dati Per la lettura dei dati registrati all’ interno Per la lettura dei dati registrati all’ interno

dell’archivio utilizziamo le seguenti dell’archivio utilizziamo le seguenti istruzioni :istruzioni :

line input #line input # In fase di lettura i record registrati tramite print # In fase di lettura i record registrati tramite print #

vengono letti dal file tramite line input # vengono letti dal file tramite line input #

ES: line input # numerofile, campiES: line input # numerofile, campi

input #input #

In fase di lettura i record registrati tramite write # In fase di lettura i record registrati tramite write # vengono letti dal file tramite input # vengono letti dal file tramite input #

ES: input # 1, campo1,campo2,campo3 ES: input # 1, campo1,campo2,campo3 ect.. ect..

Page 31: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Sappiano che nell’accesso sequenziale i dati Sappiano che nell’accesso sequenziale i dati (record) vengono registrati uno di seguito (record) vengono registrati uno di seguito all’altroall’altro

la lettura avverrà nello stesso ordine di la lettura avverrà nello stesso ordine di inserimento fino alla fine del file.inserimento fino alla fine del file.

Occorre inserire nell’operazione di lettura un Occorre inserire nell’operazione di lettura un controllo sulla fine del file , tale controllo viene controllo sulla fine del file , tale controllo viene svolto dalla funzione EOF() (end of file)svolto dalla funzione EOF() (end of file)

che ha come argomento il numero del file, che ha come argomento il numero del file, assume il valore TRUE appena viene raggiunta assume il valore TRUE appena viene raggiunta la fine del file. Il ciclo di lettura deve essere la fine del file. Il ciclo di lettura deve essere implementato tramite la struttura iterativa o implementato tramite la struttura iterativa o DO WHILE o LOOP UNTIL.DO WHILE o LOOP UNTIL.

Page 32: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Diagrammi di flussoDiagrammi di flussoÈ un metodo grafico per rappresentare È un metodo grafico per rappresentare

e schematizzare il processo di e schematizzare il processo di elaborazioneelaborazione

Per l’operazione di scrittura dati o Per l’operazione di scrittura dati o recordrecord

monitor

(tastiera)Dati in input

(Memoria centrale)

Programma in

elaborazione

stampante

Archivio dati

Page 33: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

monitor(tastiera)Dati in input

(Memoria centrale)

Programma in

elaborazione

stampante

Archivio dati

Per l’operazione di lettura record Per l’operazione di lettura record

Page 34: I record File. Il record è una struttura dati che contiene informazioni di tipo diverso o eterogenee. Il record è una struttura dati che contiene informazioni.

Per l’operazione di riscrittura o Per l’operazione di riscrittura o modifica dei record modifica dei record

monitor(tastiera)Dati in input

(Memori centrale)

Programma in

elaborazione

stampante

Archivio dati