Object Pascal/Przetwarzanie plików: Różnice pomiędzy wersjami
Usunięta treść Dodana treść
m Poprawiki błedów |
BartekChom (dyskusja | edycje) styl, prosty przykład |
||
Linia 1:
== Typy plików ==
W Object Pascalu istnieją trzy typy plików
Do otworzenia pliku używamy procedur <code>reset(zmiennePlikowa)</code> lub <code>rewrite(zmiennaPlikowa)</code>. Do zamknięcia: <code>Close(zmiennaPlikowa)</code>
Procedura <code>reset</code> otwiera plik i ustawia wskaźnik plikowy na jego początku (Przygotowuje plik do odczytu).
Procedura <code>rewrite</code> otwiera plik i usuwa całą jego zawartość następnie ustawia wskaźnik plikowy na początku pliku. (Procedura ta tworzy plik, kiedy nie ma go na dysku)
Procedura <code>Close</code> zamyka plik.
== Pliki elementowe ==
Pliki elementowe są to pliki, w których zapisuje się jeden typ danych(np. integer, byte itd.). Deklaruje się je tak:
<source lang="pascal">
var
</source>
Oto program pokazujący jak to działa:
<source lang="pascal">
program
var
begin
zmienna := 14354;
zmienna2 := 2516;
Rewrite(plik1); {Otworzenie zmiennej plikowej i usunięcie z niej danych (lub stworzenie nowego pliku)}
read(plik1,zmienna2); {Odczytanie zmiennej z pliku}
writeln(zmienna2); {Napisze "14354"}
Close(plik1); {Zamknięcie pliku}
readln;
end.
</source>
== Pliki tekstowe ==
Pliki tekstowe są to pliki, w których możemy zapisać
<source lang="pascal">
var
</source>
To prosty przykład:
<source lang="pascal">
program
var
Plik: Text; {zmienna plikowa tekstowa}
begin
assign(Plik, 'nowy.txt'); {przypisanie pliku do zmiennej}
rewrite(Plik); {usunięcie danych z pliku}
writeln(Plik, 'fasola bywa wesoła'); {wpisanie danych do pliku}
close(Plik); {zapisanie pliku}
end.
</source>
Plik <tt>nowy.txt</tt> w katalogu programu będzie teraz zawierał tekst "fasola bywa wesoła" bez względu na to, czy wcześniej istniał i czy coś zawierał.
W formacie tekstowym możemy zapisać dowolne dane, jednak kosztem tego, że operacje odczytu i zapisu będą bardziej skomplikowane - dlatego, że w plikach tekstowych musimy wszystko odczytywać po kolei. Oto program pokazujący jak to wszystko działa:
<source lang="pascal">
program plikit2;
var
plik : text;
dana1 : string;
dana2 : integer;
dana3 : byte;
tablica : array [0..10] of string;
i : integer;
begin
dana1 := 'Hmm';
dana3 := 123;
Rewrite(plik);
writeln(plik, dana1, dana2); {Zapisanie danych do pliku (Odbywa się to tak samo, jak wypisywanie danych do konsoli)}
Close(plik);
Reset(plik); {Otwarcie pliku w trybie do odczytu}
i := 0;
while not EOF(plik) do
begin
readln(plik, tablica[i]);
i := i + 1;
end;
Close(plik);
for i := 0 to 10 do
begin
writeln(tablica[i]);
end;
readln;
end.
</source>
Jak widać program jest o wiele bardziej złożony. Oto co zostanie wypisane na ekran po uruchomienu programu:
<pre>
Hmm12412
123
</pre>
Do pisania do pliku wcale nie musisz otwierać pliku instrukcją <code>Rewrite</code>, która kasuje zawartość pliku! Instrukcja <code>Append</code> otwiera plik w trybie "do dopisu", w którym (jak sama nazwa mówi) dopisuje się dane do pliku. Należy pamiętać że procedurę <code>Append</code> możemy używać tylko i wyłącznie do obsługi plików tekstowych.
|