Wstp do obsugi plikow w Pascalu

Page 1

Wstęp do obsługi plików 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; }


Zamknięcie pliku i zapis na dysku

Close(zmienna_plikowa);


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; {+}


Deklaracja pliku tekstowego type plik_txt = text;


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;


Pliki nietekstowe: rekordowe type { definicja rekordu } licznik = record dzial : string[20]; autor : string[20]; ile : longint; end; plik_rek = file of licznik; var rekordy: plik_rek;


Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.