1. Etapy przetwarzania pliku tekstowego
1 - Skojarzenie pliku dyskowego z zmienną (Utworzenie uchwytu do pliku) - Polecenie ASSIGN(Zmienna_Plikowa,'Patch do pliku');2 Otwarcie
plikuA - Do zapisu REWRITE(Zmienna_plikowa); - Jeśli plik istniał zostanie skasowany i w to miejsce utworzony nowy.B - Do odczytu RESET(zmienna_plikowa); - Wskaźnik w pliku zostanie ustawiony na początku pliku czyli równa się zero.3 A - Czytanie do pliku READ(zmienna_plikowa,zmienna); zmienna jest typem elementu pliku (string, byte, rekord, ...);B - Pisanie do pliku WRITE(zmienna_plikowa,zmienna);4
Zamknięcie pliku (zwolnienie uchwytu).Do plików praktycznie można zapisywać wszystkie typy danych prócz obiektów.
2. Funkcje i procedury przetwarzania plików tekstowych.
Deklaracje plików: var plik:FILE OF typ_danej; gdzie typ danej jak wspomniałem wcześniej może być typu prostego lub jakąś strukturą np:Rekord.np: plik:file of byte;, plik:file of real;var plik:file; Deklaracja pliku o niewiadomych elementachVar plik:Text; - deklaracja pliku tekstowego; gdzie elementami są elementy typu string lub char;Funkcje i Procedury:assign - skojarzenie pliku z zmienną utworzenie uchwytu.rewrite - otwarcie pliku do pisania.read - czytanie pliku.write - pisanie do pliku.close - zamknięcie pliku.seek - Przesunięcie wskaźnika w pliku.blockread - czytanie bloku danych z pliku.blockwrite - Pisanie do pliku bloku danych.eof -gdy wskażnik pliku osiągnie koniec to przyjmuje wartość
true.Wszystkie polecenia masz dokładnie opisane w helpie Pascala.
3. Przykładowy program z komentarzem co dana linia wykonuje.
{uwaga program nie rozpoznaje czy podany ciąg jest liczba czy ciągiem jakichś znaków}var plik:text; {Deklaracja pliku testowego} s:string; {zmienna s typu string} Procedure pisz_plik; {Procedura Zapisująca do pliku jeden element} begin assign(plik,'c:\plik.txt'); {Skojarzenie zmiennej plik z fizycznym plikiem} rewrite(plik); {Otwarcie pliku do zapisu jeśli istniał wcześniej zostanie nadpisany} write(plik,s); {pisz do pliku zmienna S} close(plik); {zamknij plik} end; procedure czytaj_plik;{Procedura Czytająca z pliku jeden element} begin assign(plik,'c:\plik.txt');{Skojarzenie zmiennej plik z fizycznym plikiem} reset(plik); {Otwarcie pliku do odczytu - ustawienie wskaźnika na początku pliku} read(plik,s);{Czytaj plik i zapisz do S} close(plik); {zamknij plik} end; begin {Początek programu głównego} writeln('Podaj Liczb© całkowitą i naciśnij ENTER'); readln(s); {Zapisanie do s ciągu znaków i czekanie na ENTER} writeln('Zapisuj© do pliku'); pisz_plik; {Wywołanie procedury zapisu do pliku) writeln('Czytam Plik'); s:=''; {zerowanie zmiennej s zostaje przypisany do s znak #0} czytaj_plik; {wywołanie procedury czytającej plik} writeln('Zapisana cyfra w pliku to: ',s); readln; {Enter i zakończenie programu}
end.
Slayer413