Plik elementowy reprezentuje fizyczny zbiór danych składający się z elementów o stałej wielkości. Do plików o określonym typie elementów możemy zapisywać i odczytywać tylko wartości takiego właśnie typu. Na przykład do pliku o elementach typu rekordowego Student: możemy zapisywać lub odczytywać z niego tylko rekordy typu Student.
Zapis do oraz odczyt z pliku elementowego odbywa się za pomocą instrukcji odpowiednio:
Read( plik, lista_zmwtmych);
gdzie plik - zmienna plikowa przygotowana do zapisu i skojarzona z plikiem elementowym na dysku lista wartości - oddzielone przecinkami wyrażenia typu zgodnego z typem elementów pliku lista_zmietmych - oddzielone przecinkami zmienne typu zgodnego z typem elementów pliku
Czynności związane z zapisaniem danych do pliku elementowego przedstawia poniższa tabela :
| Deklaracja zmiennej plikowej typu elementowego |
var plik:file of typ elementów j |
I Przypisanie zadeklarowanej zmiennej plikowej do zbioru na dysku |
AssignFiletplik, Na uv; f ’ i k i: ] ; |
Otwarcie pliku do zapisu po raz pierwszy (założenie pliku) |
Rewrite(plik); J |
| Operacja zapisu do pliku elementowego il |
j Wr i te (plik, lista wartość:.} ; i! } |
j Zamknięcie pliku |
CloseFile(Plik) ; P j |
Czynności związane z odczytem danych z pliku elementowego nrzedstawia poniższa tabela : | |
Deklaracja zmiennej plikowej typu elementowego |
var plik:file of typ elementów | |
Przypisanie zadeklarowanej zmiennej plikowej do zbioru na dysku |
ji AssignFiie (pi i k, Nazwa FI i ku } ; ;| |
j Otwarcie pliku do odczytu |
Reset(plik) ; [ |
Operacja odczytu z pliku elementowego |
i Read(plik, lista zmiennych) ; j |
j Zamknięcie pliku |
CloseFile(plik); i ś |
Fof( plik ) - funkcja zwraca wartość True, jeśli plik znajduje się w położeniu bezpośrednio przed znacznikiem końca; w przeciwnym przypadku funkcja zwraca wartość False
FilePos(/?//A') - funkcja zwraca numer bieżącego rekordu w pliku FilcSizc( plik ) - funkcja zwraca liczbę elementów pliku
Scek( plik, pozycja ) - procedura ustawia aktualne położenie pliku; parametr całkowity f wżyci a jest numerem rekordu, który staje się bieżącym rekordem pliku
Podczas wykonywania operacji na plikach mogą wystąpić błędy. Błąd może być skutkiem up. próby czytania z nieistniejącego pliku lub czytaniem danych z pliku o niewłaściwej strukturze. Aby w takim przypadku móc poprawnie powrócić do systemu operacyjnego, należy zamknąć plik danych. Umożliwia to instrukcja try ... finally, która ma postać;
try
Instrukcjo w których i noże wystąpić błąd finally
Instrukcje wykonywane cawsce, niezależnie od błędów
end
Jeśli czytamy lub zapisujemy dane do pliku elementowego, to instrukcje otwarcia pliku i czytania lub zapisu danych należy umieścić w klauzuli try, natomiast w klauzuli finally powinna być umieszczona instrukcja ctonoFile, która zawsze spowoduje zamknięcie pliku, niezależnie od ewentualnych błędów.