Crea un database usando il file dei file digitati di Delphi

In poche parole, un file è un sequenza binaria di qualche tipo. Nel Delphi, ci sono tre classi di file: digitato, testo e non tipizzato. I file digitati sono file che contengono dati di un tipo particolare, come Double, Integer o Tipo di record personalizzato precedentemente definito. I file di testo contengono caratteri ASCII leggibili. I file non tipizzati vengono utilizzati quando vogliamo imporre la struttura il meno possibile su un file.

File digitati

Mentre i file di testo sono costituiti da righe terminate con un CR / LF (#13#10) combinazione, i file digitati sono costituiti da dati presi da un particolare tipo di struttura dati.

Ad esempio, la seguente dichiarazione crea un tipo di record chiamato TMember e un array di variabili record TMember.

genere

 TMember = disco

 Nome: corda[50];

e-mail:
corda[30];

Messaggi: LongInt;
fine;

var Membri: Vettore[1..50] di TMember; 

Prima di poter scrivere le informazioni sul disco, dobbiamo dichiarare una variabile di un tipo di file. La seguente riga di codice dichiara una variabile del file F.

instagram viewer
var F: file di TMember; 

Nota: per creare un file digitato in Delphi, utilizziamo quanto segue sintassi:

var SomeTypedFile: file di SomeType

Il tipo di base (SomeType) per un file può essere un tipo scalare (come Double), un tipo di array o un tipo di record. Non dovrebbe essere una stringa lunga, un array dinamico, una classe, un oggetto o un puntatore.

Per iniziare a lavorare con i file di Delphi, dobbiamo collegare un file su un disco a una variabile di file nel nostro programma. Per creare questo link, dobbiamo usare AssignFile procedura per associare un file su un disco a una variabile di file.

 AssignFile (F, 'Members.dat') 

Una volta stabilita l'associazione con un file esterno, la variabile di file F deve essere "aperta" per prepararla per la lettura e la scrittura. Chiamiamo la procedura di ripristino per aprire un file esistente o riscrivere per creare un nuovo file. Quando un programma completa l'elaborazione di un file, il file deve essere chiuso utilizzando la procedura CloseFile. Dopo la chiusura di un file, il file esterno associato viene aggiornato. La variabile file può quindi essere associata a un altro file esterno.

In generale, dovremmo sempre usare la gestione delle eccezioni; possono verificarsi molti errori quando si lavora con i file. Ad esempio: se chiamiamo CloseFile per un file che è già chiuso, Delphi segnala un errore I / O. D'altra parte, se proviamo a chiudere un file ma non abbiamo ancora chiamato AssignFile, i risultati sono imprevedibili.

Scrivi in ​​un file

Supponiamo di aver riempito un array di membri di Delphi con i loro nomi, e-mail e numero di post e che vogliamo archiviare queste informazioni in un file sul disco. Il seguente pezzo di codice farà il lavoro:

var

 F: file di TMember;

i: numero intero;
inizio

 AssignFile (F, 'members.dat');

 Riscrivi (F);

provare

per j: = 1 per 50 fare

 Scrivi (F, Membri [j]);

infine

 CloseFile (F);

fine;fine; 

Leggi da un file

Per recuperare tutte le informazioni dal file 'members.dat' utilizzeremo quanto segue codice:

var

 Membro: TMember

 F: file di TMember;inizio

 AssignFile (F, 'members.dat');

 Reset (F);

provare

mentre no Eof (F) iniziare

 Leggi (F, Membro);

{DoSomethingWithMember;}

fine;

infine

 CloseFile (F);

fine;fine; 

Nota: Eof è la funzione di controllo EndOfFile. Usiamo questa funzione per assicurarci di non provare a leggere oltre la fine del file (oltre l'ultimo record memorizzato).

Ricerca e posizionamento

I file sono normalmente accessibili in sequenza. Quando un file viene letto utilizzando la procedura standard Lettura o scrittura utilizzando la procedura standard Scrivi, la posizione corrente del file si sposta sul successivo componente del file ordinato numericamente (record successivo). È inoltre possibile accedere ai file digitati in modo casuale tramite la procedura standard Seek, che sposta la posizione del file corrente su un componente specificato. Il FilePos e Dimensione del file le funzioni possono essere utilizzate per determinare la posizione corrente del file e la dimensione del file corrente.

{torna all'inizio - il primo record}

 Cerca (F, 0);


{vai al 5 ° record}

 Cerca (F, 5);


{Vai alla fine - "dopo" l'ultimo record}

 Cerca (F, FileSize (F)); 

Cambia e aggiorna

Hai appena imparato a scrivere e leggere l'intero array di membri, ma cosa succede se tutto ciò che vuoi fare è cercare il decimo membro e cambiare l'e-mail? La procedura successiva fa esattamente questo:

procedura Cambia email(const RecN: numero intero; const Nuova email: corda) ;var DummyMember: TMember;inizio

{assegnare, aprire, blocco gestione eccezioni}

 Cerca (F, RecN);

 Leggi (F, DummyMember);

 DummyMember. Email: = NewEMail;

{leggi passa al prossimo record, dobbiamo

tornare al record originale, quindi scrivere}
 Cerca (F, RecN);

 Scrivi (F, DummyMember);

{chiudi file}fine;

Completamento dell'attività

Ecco fatto: ora hai tutto ciò che ti serve per svolgere il tuo compito. È possibile scrivere le informazioni dei membri sul disco, è possibile rileggerle e è anche possibile modificare alcuni dei dati (e-mail, ad esempio) nel "mezzo" del file.

L'importante è che questo file non sia un File ASCII, ecco come appare Bloc notes (solo un record):

 .Delphi Guide g Ò5 · ¿ì. 5.. B V.Lƒ, „¨[email protected]Ï.. ç.ç.ï.. 

instagram story viewer