Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych Pliki Definicja pliku tekstowego Operacje wykonywane na plikach tekstowych
Pliki tekstowe zawierają informację niezakodowaną, bezpośrednio czytelną tzn. zawierają dowolny tekst
Etapy przetwarzania plików opis zmiennej plikowej, kojarzenie pliku z fizycznym zbiorem danych na dysku, otwieranie pliku operacje plikowe dopisywanie tekstu do pliku, wyprowadzanie elementów z pliku, zamknięcie pliku
Opis zmiennej plikowej dla pliku tekstowego TYPE zmienna_plikowa=Text; lub VAR zmienna_plikowa: Text; np. TYPE Tekstowy=Text; VAR Notes:Tekstowy; VAR nazwy:Text;
Kojarzenie pliku z fizycznym zbiorem danych na dysku Assign (zmienna_plikowa, zbiór_na_dysku); Assign (notes, ’C:\teksty\notesik.txt’); Assign (nazwy,’A:\napisy.txt’); Wykonanie tej procedury powoduje skojarzenie pliku reprezentowanego przez zmienną plikową ze zbiorem danych na dysku o nazwie określonej przez drugi parametr. W momencie wywołania Assign plik nie może być otwarty. Jeżeli jako drugi parametr podamy pusty łańcuch zmienna plikowa zostanie skojarzona ze standardowymi urządzeniami wejścia i wyjścia - klawiaturą i monitorem.
Otwieranie pliku Rewrite (zmienna_plikowa); utworzenie i otwarcie nowego pliku do zapisu Reset (zmienna_plikowa); otwarcie istniejącego pliku do odczytu, wskaźnik ustawia się na pierwszym elemencie Append (zmienna_plikowa); otwarcie istniejącego pliku tekstowego wyłącznie do zapisu, wskaźnik ustawia się na końcu zbioru Procedurę Rewrite należy zastosować jeżeli tworzymy nowy fizyczny zbiór danych, skojarzony wcześniej ze zmienną plikową. Procedura ta może mieć działanie destrukcyjne. Jeżeli istnieje zbiór o danej nazwie zostanie on zniszczony, a w jego miejsce zostanie utworzony nowy pusty zbiór. Tak zwany wskaźnik plikowy określający położenie w pliku, będzie miał wartość zero i będzie wskazywał na jego pierwszy element. Procedury Reset i Append umożliwiają otwarcie pliku skojarzonego z już istniejącym zbiorem. Reset powoduje po otwarciu pliku ustawienie wskaźnika plikowego na pierwszy element. Jeśli na dysku nie istnieje zbiór skojarzony ze zmienną plikową pojawi się komunikat o błędzie. Procedura Append może być stosowana tylko dla plików tekstowych, powoduje po otwarciu pliku ustawienie wskaźnika na końcu zbioru. Możliwe jest dzięki temu łatwe dopisywanie tekstów.
Dopisywanie tekstu do pliku Write (zmienna_plikowa,zmienna_w_programie); dopisuje tekst na końcu ostatniego wiersza, ale nie powoduje rozpoczęcia nowego wiersza lub Writeln (zmienna_plikowa,zmienna_w_programie); dopisuje tekst na końcu ostatniego wiersza i powoduje przejście do nowego wiersza np. Write(notes, slowo); Writeln(nazwy,nazwa1); Wykonanie tej procedury powoduje wprowadzenie do otwartego pliku na dysku (skojarzonego ze zmienna plikową, stanowiącą pierwszy parametr) danych przypisanych drugiemu parametrowi. Wartości przypisane obu parametrom muszą być tego samego typu. Po każdorazowym zapisaniu wartości pojedynczej zmiennej następuje automatyczne przesunięcie wskaźnika do początku następnego elementu.
Odczytywanie plików tekstowych Read (zmienna_plikowa,zmienna_w_programie); lub Readln (zmienna_plikowa,zmienna_w_programie); np. Read(notes, slowo);
Zamknięcie pliku Close (Zmienna_Plikowa); Wykonanie tej procedury powoduje zamknięcie pliku na dysku
Pozostałe funkcje stosowane przy przetwarzaniu plików tekstowych informacja, czy został osiągnięty koniec zbioru: Eof(zmienna_plikowa); SeekEof(zmienna_plikowa); informacja, czy został osiągnięty koniec linii: Eoln(zmienna_plikowa); SeekEoln(zmienna_plikowa);
Procedury i funkcje stosowane przy przetwarzaniu plików elementowych informacja, czy został osiągnięty koniec zbioru: Eof(zmienna_plikowa); SeekEof(zmienna_plikowa); funkcja podająca aktualną pozycję w pliku FilePos (znmienna_plikowa); funkcja zwracająca rozmiar pliku FileSize(zmienna_plikowa); wartością tej funkcji jest liczba określająca ilość elementów w pliku.
Procedury i funkcje stosowane przy przetwarzaniu plików elementowych procedura powodująca ustawienie położenia w zbiorze określonym pierwszym parametrem na elemencie o numerze określonym drugim parametrem: Seek(zmienna_plikowa, pozycja); Zapamiętaj Pierwszy element pliku znajduje się na pozycji zero. Konstrukcja: Seek (zmienna_plikowa, FileSize(zmienna_plikowa)); umożliwia dopisywanie do plików elementowych
Pozostałe procedury i funkcje stosowane przy przetwarzaniu plików usunięcie pliku Erase(zmienna_plikowa); zmiana nazwy pliku: Rename(zmienna_plikowa, nowa_nazwa);
Przykład Napisz program pozwalający: wprowadzić do pliku tekstowego 10 liczb całkowitych wyprowadzić dane z pliku tekstowego (wyświetlić te liczby na ekranie) zapisz program na dyskietce pod nazwą calk1.pas
Program plik_tekstowy1; const n=10; var calkowite:text; i,liczba:integer; begin assign(calkowite,'liczby.txt'); rewrite(calkowite); writeln ('podaj 10 liczb całkowitych:'); for i:=1 to n do write ('l',i,'=');readln(liczba); write(calkowite,liczba:6); end; reset(calkowite); while not eof(calkowite) do read(calkowite,liczba); write(liczba:6) close(calkowite); readln End.
Zadanie Zmodyfikuj program rzecz1.pas z poprzedniej lekcji tak, aby: wyświetlał ilość liczb w tym pliku, dopisz do pliku na końcu liczby 100 i 1000. Wyświetl elementy: 1, 5, 10, 15 i ostatni. Zapisz program na dyskietce pod nazwą rzecz2.pas.