background image

 

 

1

Operacje na plikach 

zewnętrznych

Pascal

Marek Pudełko

background image

 

 

2

Definicja

• Pascal umożliwia obsługę plików 

zewnętrznych – zarówno tekstowych 
jak i binarnych.

• Umożliwia realizację następujących 

operacji:

– Otwieranie plików
– Czytanie z nich
– Zapisywanie plików
– Dopisywanie do plików.

background image

 

 

3

Operacje na plikach

Append

Otwiera plik do dopisywania.
Plik musi być tekstowy i musi 

istnieć, w przeciwnym razie 

powstanie błąd.
Append(plik: Text);

Reset

Otwiera istniejący plik z nazwą 
przekazaną do Plik poleceniem 

Assign.
Reset(plik);

Reset

Tworzy i otwiera nowy plik. 
Plik jest nazwą przekazaną za 
pomocą polecenia Assign.
Rewrite(plik);

background image

 

 

4

background image

 

 

5

Assign i Close

• Assign(plik : String);

– Procedura przypisuje zmiennej plikowej plik 

plik o nazwie nazwa.

– Plik może być zmienną typu Text. By 

odwoływać się do jakiegoś pliku, zawsze 
należy najpierw użyć procedury Assign
Przy dalszych operacjach pliki są 
identyfikowane przy pomocy zmiennej 
plikowej.

• Close(var plik : file);

– Procedura służąca do zamykania otwartego 

pliku dowolnego typu.

background image

 

 

6

Budowa programu do operacji na 

plikach

program do_pliku;
var z:text;

{zmienne typu plikowego}

begin
  assign (z,‘pliczek.txt');   

{skojarzenie zmiennej tekstowej z nazwa pliku}

     rewrite (z);          {przygotowanie pliku do zapisu}
     append (z);          {przygotowanie pliku do zapisu}
     reset (z);          {przygotowanie pliku do zapisu}
     {…}    
     close (z2);

{zamkniecie pliku po zakonczeniu pracy z nim}

  readln;
end.

background image

 

 

7

program program_zapisujacy_do_pliku;
var     z1,z2:text;
        imie,nazwisko,adres,miasto:string;

begin
     assign (z2, 'wynik.txt');   {skojarzenie zmiennej tekstowej z nazwa pliku}
     rewrite (z2);          {przygotowanie pliku do zapisu}
     writeln ('Program zapisuje do pliku dane adresowe uzytkownika');
     write ('Podaj swoje imie: ');
     readln (imie);
     write ('Podaj swoje nazwisko: ');
     readln (nazwisko);
     write ('Podaj swoj adres: ');
     readln (adres);
     write ('Podaj swoje miasto: ');
     readln (miasto);
     writeln (z2,imie);      {zapis do lpliku}
     writeln (z2,nazwisko);
     writeln (z2,adres);
     writeln (z2,miasto);
     close (z2);            {zamkniecie pliku po zakonczeniu pracy z nim}
     readln;
end.

background image

 

 

8

program program_czytajacy_z_pliku;
var     z1,z2:text;
        imie,nazwisko,adres,miasto:string;

begin
     assign (z2, 'wynik.txt');   {skojarzenie zmiennej tekstowej z nazwa pliku}
     reset (z2);          {przygotowanie pliku do czytania}
     readln (z2,imie);      {odczyt z pliku}
     readln (z2,nazwisko);
     readln (z2,adres);
     readln (z2,miasto);
     writeln ('Program wczytuje z pliku dane adresowe uzytkownika');
     write ('Twoje imie to: ');
     writeln (imie);
     write ('Twoje nazwisko to: ');
     writeln (nazwisko);
     write ('Twoj adres to: ');
     writeln (adres);
     write ('Twoje miasto to: ');
     writeln (miasto);
     close (z2);            {zamkniecie pliku po zakonczeniu pracy z nim}
     readln;
end.

background image

 

 

9

Rozmiar pliku

• FileSize(var plik : file) : LongInt; 

– Funkcja zwraca wielkość pliku. Plik nie może być tekstowy i 

musi być otwarty (np. poleceniem Reset). Wartość zwracana 

jest w jednostkach, z których składa się plik. 

• Przykład
var plik: file of real;
    r: real;
begin
 Assign(plik,'liczby.tmp');
 Rewrite(plik);
 r:=1;
 Write(plik, r, r);  {zapisanie dwóch liczb do 

pliku}

 Writeln(FileSize(plik));{2}
 Close(plik);
end.

background image

 

 

10

Aktualna pozycja pliku

• FilePos(var plik : file) : LongInt;

– Funkcja zwraca aktualną pozycję pliku. Plik nie może być 

tekstowy i musi być otwarty (np. poleceniem Reset). Wartość 

zwracana jest w jednostkach, z których składa się plik.

• Przykład
var plik: file of real;
    r:real;
begin
 Assign(plik,'liczby.tmp');
 Rewrite(plik);
 r:=1;
 Write(plik, r, r);  {zapisanie dwóch liczb do 

pliku}

 Writeln(FilePos(plik)); {2}
 Close(plik);
end.

background image

 

 

11

Szukanie w pliku

• Seek (F;N:Longint);

– Ustawia pozycję w pliku na N.

• SeekEof : boolean;

– Funkcja zwraca wartość TRUE jeśli jest 

koniec pliku.

• SeekEoln : boolean;

– Funkcja przyjmuje wartość TRUE jeśli jest 

koniec linii w pliku.

background image

 

 

12

Koniec pliku

• Eof(var plik: file ):Boolean

– Funkcja zwraca wartość logiczną True jeśli osiągnięty 

został koniec pliku.

• Przykład
var
  F: text;
  Ch:char;
begin
Assign(F,'c:\autoexec.bat');
  Reset(F);
  while not Eof(F) do
  Begin
     Read(F, Ch);
 Write(Ch); {pokaż zawartość pliku}
 End;
end.

background image

 

 

13

Znacznik końca pliku

• Eoln(var plik: file): Boolean

– Zwraca wartość logiczną True jeśli 

wskaźnik pozycji pliku wskazuje na koniec 
wiersza.

background image

 

 

14

Skrócenie pliku

• Truncate(F)

– Skraca plik począwszy od aktualnej 

pozycji.

background image

 

 

15

Zmiana nazwy pliku

• Rename( F;NowaNazwa)

– Zmienia nazwę pliku.


Document Outline