Come accedere ai dati dei file in modo sequenziale

October 21

Come accedere ai dati dei file in modo sequenziale


I file sul disco sono considerati i flussi di byte dai sistemi operativi più popolari, come Microsoft Windows e le varianti di Unix, tra cui Linux. Spetta ai programmi che accedono al file per dare un senso del suo contenuto aggregando singoli byte in rappresentazioni di oggetti dati di livello superiore. Tutti i linguaggi di programmazione consentono ai programmatori di scrivere codice che elabora tutti i byte in un file in ordine, a partire dal byte all'offset zero. Il sistema operativo può essere fatto per applicare il metodo di accesso sequenziale, facendolo tenere traccia dell'offset per l'ultimo accesso per restituire il byte immediatamente successivo punto nel futuro accessi in lettura.

istruzione

1 Aprire il file che si desidera accedere. La sintassi specifico per questo dipende dal linguaggio di programmazione. Ad esempio, in C si eseguirà:

FILE * Filehandler;

Filehandler = fopen (nome del file, "r");

dove il "nome del file" variabile contiene il nome del file. Dopo questo, la variabile "Filehandler" conterrà un gestore che può essere utilizzato per le successive operazioni sul file aperto.

2 Spostare l'indicatore di posizione per il punto in cui si desidera iniziare la lettura. Per impostazione predefinita, l'indicatore di posizione sarà all'inizio del file dopo la sua apertura. Ad esempio, in C è possibile spostarlo al byte n-esimo (contando dall'inizio) eseguendo:

fseek (Filehandler, n, SEEK_SET);

3 Leggere un numero di byte consecutivi dal file, partendo dal valore corrente dell'indicatore di posizione. Ad esempio, in C è possibile eseguire:

fread (buffer, numBytes, numInstances, Filehandler);

leggere numInstances sequenze di numBytes ciascuno --- per un totale di numBytes x numInstances byte --- nel buffer. Seguendo letture inizierà quando questi lasciò fuori, come l'indicatore di posizione viene mantenuta automaticamente dal sistema operativo.

4 Chiudere il file quando si è finito, a prescindere dal fatto che si accede tutti o no. Ad esempio, in C si esegue:

fclose (Filehandler);