Wstp do obsugi plikow w Pascalu
description
Transcript of Wstp do obsugi plikow w Pascalu
Pascal posiada kilka typów plików:
•pliki tekstowe(można je podglądad w zwykłym notatniku)•pliki znakowe(bardzo podobne do powyższego typu)•pliki liczbowe(nie można ich podglądad w notatniku)•pliki rekordowe(nie można ich podglądad w notatniku)
Zmienne plikowe definiuje się za pomocą typów plikowych, np.:
type
plik_znk = file of char;
plik_licz = file of byte;
{=====================}
var
znaki: plik_znk;
liczby: plik_licz;
Instrukcja ASSIGN, służy do wiązania zmiennej plikowej z konkretnym plikiem na dysku
assign(znaki,’M:\znaki.dat');
assign(liczby,'liczby.dat');
Trzy tryby pracy
• append(zmienna_plikowa) - umożliwia dopisywanie nowych danych do pliku(plik musi istnied - tylko dla plików TEKSTOWYCH)
• reset(zmienna_plikowa) - otwiera plik do czytania(plik musi istnied)
• rewrite(zmienna_plikowa) - otwiera plik do pisania, usuwa całą zawartośd i zaczyna zapisywanie od początku pliku, jeśli plik nie istnieje - tworzy go
Odczyt i zapis do pliku
read(znaki,q); { var q: char; }
read(liczby,w); { var w: interger; }
write(znaki,q); { var q: char; }
write(liczby,w); { var w: interger; }
Przykład kodu, który sprawdza czy plik do odczytu istnieje.
{-}
repeat
write('Podaj pelna nazwe pliku do otwracia:'); readln(nazwa);assign(zmienna_plikowa,nazwa); reset(zmienna_plikowa);
if IOresult <> 0 then writeln('Podany plik nie istnieje, wprowadz ponownie!');
until IOresult = 0;
{+}
Pliki – przydatne funkcje
EOF(zm_plik) – zwraca TRUE gdy osiągnięto koniec pliku
EOLN(zm_plik) – zwraca TRUE gdy osiągnięto koniec linii w pliku
tekstowym
Seek(zm_plik,n) – ustawia wskaźnik pliku na elemencie o numerze n
FilePos(zm_plik) – zwraca aktualną pozycję wskaźnika pliku
FileSize(zm_plik) – zwraca liczbę elementów pliku
IOResult – zwraca 0 gdy ostatnią operację na pliku wykonano
pomyślnie – w przeciwnym wypadku zwraca kod błędu
Pliki nietekstowe: znakowe
Rozmiar plików znakowych wynosi dokładnie tyle bajtów ile jest w nim zapisanych znaków ASCII.
type
plik_znk = file of char;
var
znaki, znaki2: plik_znk;
Pliki nietekstowe: liczbowe
Rozmiar plików liczbowych wynosi: rozmiar bajtów typu * ilośd zapisanych liczb.
type
plik_licz = file of longint;
var
liczby: plik_licz;