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.