Operacje na plikach tekstowych. Strona 1

Temat: PLIKI TEKSTOWE i OPERACJE NA TEKSTACH

W języku Pascal wyróŜniamy 3 rodzaje plików:

1. PLIK TEKSTOWY

2. PLIK ZDEFINIOWANY

3. PLIK NIEZDEFINIOWANY

Plik tekstowy to złoŜona struktura danych, która składa się z pewnej liczby WIERSZY (W

KAśDYM WIERSZU SĄ ZNAKI) .

KaŜdy wiersz jest zakończony parą znaków sterujących tj. LF, CR.

LF znaczy przejdź do nowej linii, a CR - cofnij się na początek linii.

Na końcu kaŜdego pliku znajduje się znak EOF (jego kod to 26) Definicja zmiennej typu plikowego (tekstowego) ma postać: VAR identyfikator-pliku : TEXT;

Przykład prostego programu czytającego plik tekstowy: program pliki1;

uses Crt;

var

plik : Text;

wiersz : String;

begin

clrscr;

assign( plik, ‘tematy.txt ‘ );

reset( plik );

repeat

readln( plik, wiersz );

writeln( wiersz );

until eof( plik );

close( plik );

readkey;

end.

Operacje na plikach tekstowych. Strona 2

UWAGA:

Wszystkie operacje na pliku dyskowym odbywają się w Pascalu na tak zwanej zmiennej plikowej

var

plik : Text;

Dla plików tekstowych będzie ona typu TEXT.

Nie operuje się tutaj nazwą pliku (np. TEMATY.TXT), tylko naleŜy skojarzyć zmienną plikową z nazwą fizycznego pliku:

assign ( plik, ‘tematy.txt ‘ ) ;

Schemat przetwarzania pliku

Opis zmiennej plikowej (w części deklaracyjnej)

skojarzenie zmiennej plikowej z fizycznym zbiorem danych otwarcie pliku

Wykonywanie operacji na pliku

zamknięcie pliku

Operacje na plikach tekstowych. Strona 3

Opis zmiennej plikowej (w części deklaracyjnej)

skojarzenie zmiennej plikowej z fizycznym zbiorem danych otwarcie pliku

Wykonywanie operacji na pliku

zamknięcie pliku

Schemat przetwarzania pliku pokazano na poniŜszym przykładzie: program pliki1;

uses Crt;

var

plik : Text; { Opis zmiennej plikowej }

wiersz : String;

begin

clrscr;

assign(plik, ‘tematy.txt ‘); { skojarzenie zmiennej plikowej }

reset(plik); { otworzenie pliku do odczytu }

repeat

readln(plik, wiersz); { czytanie jednej linii pliku }

writeln(wiersz);

until eof(plik); { badanie czy nastąpił juŜ koniec pliku }

close(plik);

{ zamknięcie pliku }

readkey;

end.

Operacje na plikach tekstowych. Strona 4

Co moŜna robić z plikami?

• Tworzyć nowe pliki

• Otwierać w trybie do odczytu

• Otwierać w trybie do zapisu (uwaga: jeśli plik juŜ istnieje to następuje kasowanie zawartości całego pliku)

• Otwierać w trybie do dopisywania

• Zamykać plik

• Odczytywać wiersz z pliku

• Wpisywać nowy wiersz na koniec pliku

• Badać, czy wystąpił koniec pliku

Tworzenie nowego pliku

asssign

rewrite

NaleŜy otworzyć plik w trybie do zapisu (uwaga: jeśli plik juŜ istnieje to następuje kasowanie zawartości całego pliku!!! )

program pliki2;

uses Crt;

var

plik : Text;

wiersz : String;

begin

clrscr;

assign(plik, 'NOWY.TXT');

rewrite(plik);

close(plik);

readkey;

end.

Operacje na plikach tekstowych. Strona 5

Otworzenie pliku w trybie do odczytu

assign

reset

program pliki1;

uses Crt;

var

plik : Text;

wiersz : String;

begin

clrscr;

assign(plik, ‘TEMATY.TXT');

reset(plik);

close(plik);

readkey;

end.

Otworzenie pliku w trybie do ZAPISU

PATRZ „Tworzenie nowego pliku”

program pliki2;

uses Crt;

var

plik : Text;

wiersz : String;

begin

clrscr;

assign(plik, 'NOWY.TXT');

rewrite(plik);

close(plik);

readkey;

end.

Operacje na plikach tekstowych. Strona 6

Otworzenie pliku w trybie do dopisywania

assign

append

program pliki3;

uses Crt;

var

plik : Text;

wiersz : String;

begin

clrscr;

assign(plik, 'TEMATY.TXT');

append(plik);

writeln(plik,'Tematy dla Klasy informatycznej'); writeln(plik,'Programowanie strukturalne i

obiektowe');

close(plik);

readkey;

end.

Zamykanie pliku

close

program pliki1;

uses Crt;

var

plik : Text;

wiersz : String;

begin

clrscr;

assign(plik, ‘TEMATY.TXT');

reset(plik);

close(plik);

readkey;

end.

Operacje na plikach tekstowych. Strona 7

Odczytywanie wiersza z pliku

readln

program pliki4;

uses Crt;

var

plik : Text;

wiersz : String;

begin

clrscr;

assign(plik, ‘tematy.txt ‘);

reset(plik);

repeat

readln ( plik, wiersz );

writeln(wiersz);

until eof(plik);

close(plik);

readkey;

end.

Badanie, czy wystąpił koniec pliku

eof

begin

assign(plik, ‘tematy.txt ‘);

reset(plik);

repeat

……..

……..

until eof(plik);

close(plik);

end.

Operacje na plikach tekstowych. Strona 8

Wpisywanie nowego wiersza na koniec pliku

writeln

program pliki3;

uses Crt;

var

plik : Text;

wiersz : String;

begin

clrscr;

assign(plik, 'TEMATY.TXT');

append(plik);

writeln ( plik ,‘Tematy dla Klasy informatycznej‘ ); writeln ( plik, ‘Programowanie strukturalne i obiektowe‘); close(plik);

readkey;

end.

Przykład programu kopiującego plik źródłowy do pliku docelowego program pliki4;

uses Crt;

var

source, target : Text;

line : String;

begin

clrscr;

assign(source, 'TEMATY.TXT');

reset(source);

assign(target, 'TEMATY.BAK');

rewrite(target);

repeat

readln(source,line); writeln(target, line);

until eof(source);

close(source);

close(target);

end.