La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

File ad accesso casuale o random La principale differenza tra i file sequenziali e i file ad accesso casuale è che in un file ad accesso casuale è possibile.

Presentazioni simili


Presentazione sul tema: "File ad accesso casuale o random La principale differenza tra i file sequenziali e i file ad accesso casuale è che in un file ad accesso casuale è possibile."— Transcript della presentazione:

1 File ad accesso casuale o random La principale differenza tra i file sequenziali e i file ad accesso casuale è che in un file ad accesso casuale è possibile leggere e scrivere i dati in qualsiasi ordine. Con i file sequenziali è sempre necessario partire dallinizio del file e procedere in ordine con la scansione attraverso il file.

2 I file Random offrono maggiore velocità e la capacità di accedere ai dati in base al numero di record. Con questa organizzazione ogni record viene registrato ed identificato in base ad un numero progressivo di record. Ogni record pertanto può essere letto o scritto senza accedere ai record precedenti. I record allinterno dellarchivio sono di lunghezza fissa

3 Operazioni sui file Le operazioni che possiano fare sono : –inserimento –lettura –modifica –cancellazione : logica fisica

4 Dichiarazione del struttura dati record La dichiarazione del record avviene come per i file sequenziali a livello di modulo : type merci codice as string *5 prodotto as string * 20 prezzoun as currency quantità as integer end type public prodotti as merci definiamo una variabile col nome prodotti che prenderà il tipo della struttura record di nome merci.

5 Funzioni Per la gestione dei file random è necessario avvalersi di alcune funzioni predefinite del V.B. : –len : restituisce il numero di caratteri presenti in una stringa o nel nostro caso in un record es : lr = len(prodotti) –freefile : restituisce il primo numero di file disponibile da utilizzare con la open. Questa funzione si utilizza quando si devono gestire più archivi

6 –Lof (length of file) : restituisce la dimensione in byte del file aperto con la open. Dividendo la lunghezza totale in byte del file per la lunghezza del record otteniamo il numero di record registrati in archivio ( la divisione si fa con loperatore \ di divisione fra interi ) –seek : utilizzata quando è necessario stabilire la posizione del puntatore allinterno del file, la funzione restituisce la posizione del record successivo nel file. La sintassi è la seguente : seek(numerofile) oppure posizione = seek(1)

7 Apertura di un file Un file random deve essere aperto in modalità random per tutte le operazioni che dobbiamo compiere sul file sia lettura che scrittura e riscrittura. La sintassi è la seguente : –open nomepercorso [for random] as numerofile len = lunghezzarecord

8 esempio : open c:\5dp\magazzino.dat [for random] as 1 len=prodotti con tale istruzione il file è aperto per compiere qualsiasi operazione (lettura, scrittura, modifica) for random è posto fra parentesi quadre poichè si può anche ometterlo, cioè viene riconosciuta automaticamente la modalità random

9 Operazione di scrittura Loperazione di scrittura sul un file ad A.R. viene eseguita con lstruzione PUT, la sintassi è la seguente : –put #numerofile, posizione,nomerecord la posizione viene calcolata come già visto con questa formula usando le funzioni preelencate posizione =LOF(1) \ LEN(prodotti) per aggiungere un nuovo record, alla funzione numero dei record si aggiunge ununità in più

10 Operazione di lettura Loperazione di lettura sul un file ad A.R. viene eseguita con lstruzione GET, la sintassi è la seguente : –get #numerofile, posizione,nomerecord la posizione è data in input o calcolata

11 Modifica di un record per modificare record già esistenti si devono eseguire i seguenti passi –individuare il numero del record da modificare –fornire i nuovi valori per i campi –utilizzare listruzione put per la riscrittura specificando la posizione del record

12 Cancellazione logica di un record Per cancellare logicamente record si procede in questo modo : –individuare il numero del record da cancellare –contrassegnare un campo del record con un carattere particolare esempio il campo codice con : ***** –utilizzare listruzione put per la riscrittura specificando la posizione del record

13 Cancellazione fisica La cancellazione fisica si attua attraverso questi passi: –si crea un file destinazione avente la stessa struttura record del file origine –leggendo sequenzialmente il file origine si copiano nel file destinazione tutti i record che devono essere mantenuti nel file –alla fine si chiudono i due file e si cancella il file origine con listruzione Kill –si rinomina il file assegnando il nome del file origine rimosso


Scaricare ppt "File ad accesso casuale o random La principale differenza tra i file sequenziali e i file ad accesso casuale è che in un file ad accesso casuale è possibile."

Presentazioni simili


Annunci Google