p4

background image

Programowanie

dr inż. Elżbieta Jasińska

1. Pliki

Plik są odwzorowaniem fizycznych zbiorów. W języku potocznym pojęć tych często nie rozróżnia się,
określając je, podobnie jak w języku angielskim, jednym terminem plik (file). W języku Delphi istnieją trzy
rodzaje plików:
• tekstowe,
• zdefiniowane (elementowe),
• niezdefiniowane (amorficzne).

Prowadzony kurs zawęża się do pracy na dwóch pierwszych.

Operacje na dowolnym pliku zapisać można w sposób uniwersalny, w zależności od rodzaju tego pliku
polecenia niezbędne do ich wykonania mogą się różnić.

1.1.

Wybrane procedury i funkcje uniwersalne dla plików tekstowych

i zdefiniowanych

Assignfile (zmienna_plikowa, nazwa_zbioru_typu_łańcuchowego);
Np.
Assignfile (f, ‘a.txt’);
Procedura ta umożliwia skojarzenie zmiennej plikowej z fizycznym zbiorem danych o podanej ścieżce .

Rewrite(zmienna_plikowa);
Np.
Rewrite(f);
Procedura powoduje utworzenie nowego fizycznego zbioru danych o nazwie skojarzonej wcześniej z podaną
zmienną plikową (otwarcie do zapisu). W przypadku gdy zbiór o takiej nazwie już istnieje, zostanie on
usunięty, a w jego miejscu zostanie utworzony nowy zbiór pusty. Zbiór po otwarciu ustawiany jest w pozycji
początkowej.

Reset(zmienna_plikowa);
Np.
Reset(f);
Procedura ta służy do otwarcia pliku skojarzonego z już istniejącym zbiorem. (Otwarcie do odczytu). Zbiór po

Skojarzyć plik ze zmienną plikową

Otworzyć plik jeśli istnieje lub utworzyć go

Wykonać ciąg instrukcji na danych w pliku

Zamknąć plik

background image

Programowanie

dr inż. Elżbieta Jasińska

otwarciu ustawiany jest w pozycji początkowej.

Closefile(zmienna_plikowa);
Np.
Closefile(f);
Procedura zamyka fizyczny zbiór danych skojarzony ze zmienną plikową. Każdy plik, który został otwarty,
musi być zamknięty.

Eof(zmienna_plikowa);
Np.
Eof(f);

Funkcja ta przyjmuje wartość logiczną TRUE gdy plik znajduje się w pozycji przed ostatnim znakiem zbioru
(znakiem Ctrl-Z) lub gdy zbiór nie zawiera żadnych elementów. W przeciwnym wypadku ma wartość FALSE.

1.2.

Pliki tekstowe

Pliki tekstowe zapisują informacje jako ciąg znaków (kodów ASCII) . Można w nich zapisywać wielkości
różnych typów oraz stosować formatowanie zapisu. Pliki te umożliwiają wyłącznie dostęp sekwencyjny do
zawartych w nich danych. Oznacza to, że aby odczytać wartość określonego elementu, należy wcześniej
przeczytać to co jest przed nim.

1.2.1. Procedury i funkcje przetwarzania plików tekstowych

Append(zmienna_plikowa);
Np.
Append(f);

Procedura otwiera plik skojarzony ze zmienną plikową i ustawia zbiór na pozycji końcowej (otwarcie do
dopisywania).

Eoln(zmienna_plikowa);
NP.
Eoln(f);
Funkcja, której wartość logiczna jest TRUE gdy plik znajduje się w pozycji znaku końca wiersza (tj. znaku
CR) lub gdy wartością funkcji Eof dla tej samej zmiennej plikowej jest TRUE. W przeciwnym wypadku
wartością funkcji jest FALSE.

Read(zmienna_plikowa,lista_zmiennych);
lub
Readln(zmienna_plikowa,lista_zmiennych);
Np.
Read(f, X,Y,Z);
lub
Readln(f, X,Y,Z);

background image

Programowanie

dr inż. Elżbieta Jasińska

Procedury te służą do czytania elementów z plików. Pierwszym parametrem tych procedur jest odpowiednia
zmienna plikowa, po której następują oddzielone przecinkami nazwy czytanych zmiennych. Po
każdorazowym odczytaniu wartości pojedynczej zmiennej następuje automatyczne przesunięcie wskaźnika
do początku następnego elementu. W przypadku procedury Readln wskaźnik przesuwa się do początku
następnego wiersza.

Write(zmienna_plikowa,lista_argumentów);
lub
Writeln(zmienna_plikowa,lista_argumentów);

Np.
Write (f, X,Y,Z);
lub
Writeln (f, X,Y,Z);

Procedury powyższe umożliwiają wprowadzanie elementów do plików. Podobnie jak w przypadku czytania,
pierwszym parametrem tych procedur jest identyfikator odpowiedniej zmiennej plikowej, odpowiadającej
otwartemu uprzednio plikowi. Wywołanie procedur powoduje zapisanie do fizycznego zbioru odpowiednich
wielkości. Po każdorazowym zapisaniu wartości pojedynczej zmiennej następuje automatyczne przesunięcie
wskaźnika do początku następnego elementu. W przypadku procedury Writeln wskaźnik przesuwa się do
początku następnego wiersza.

SeekEof (zmienna_plikowa);
Np.
SeekEof (f);

Funkcja ta daje takie same wyniki jak funkcja Eof, z tym że ignoruje najbliższe spacje, znaki tabulacji oraz
znaki CR i LF.

SeekEoln (zmienna_plikowa);
Np.
SeekEoln (f);

Funkcja ta daje takie same wyniki jak funkcja Eoln, z tym że ignoruje najbliższe spacje, znaki tabulacji oraz
znaki CR i LF.

Wyżej wymienione procedury maja zastosowanie do operacji na plikach tekstowych, dla operacji na plikach
zdefiniowanych widoczne są pewne różnice.

1.3.

Pliki zdefiniowane

Pliki zdefiniowane wykorzystują w zapisie reprezentację maszynową. W przypadku pliku zdefiniowanego
możliwy jest zapis i odczyt wielkości wyłącznie jednego typu składowego. Pliki te są plikami o dostępie
swobodnym, co oznacza, że w każdym momencie możliwy jest dostęp do dowolnego elementu pliku.

background image

Programowanie

dr inż. Elżbieta Jasińska

Plik zdefiniowany jest struktura składającą się z danych tego samego typu, np. Byte lub Real. Dlatego aby
móc przedstawić dane różnego typu stosuje się deklaracje własnego typu, najczęściej w postaci rekordu
(pkt.4.1 Wykład 1)

1.3.1. Procedury i funkcje przetwarzania plików zdefiniowanych

FileSize(zmienna_plikowa);
Np.
FileSize(g);
Wartością funkcji jest rozmiar (LongInt) wyspecyfikowanego pliku. Funkcja ta zwraca liczbę elementów
danego pliku zdefiniowanego.

FilePos(zmienna_plikowa);
Np.
FilePos(g);

Wartością funkcji jest liczba całkowita typu LongInt, podająca aktualną pozycje pliku skojarzonego ze
zmienną plikową .Wartość funkcji jest równa 0 jeżeli plik znajduje się w pozycji początkowej, natomiast gdy
plik znajduje się w pozycji końcowej wartość ta jest równa wartości funkcji FileSize.
Dlatego należy zwrócić uwagę na indeksowanie pozycji w pliku zdefiniowanym, ponieważ ustawieni kursora
przed pierwszym elementem, oznacza ustawieni go na pozycji 0.

Seek(zmienna_plikowa, pozycja);
Np.
Seek(g,n);

Procedura ta umożliwia przesunięcie aktualnego położenia pliku do elementu o podanej liczbie porządkowej(
tutaj n), określonego parametrem pozycja typu LongInt.

Zapisywanie i odczytywanie plików zdefiniowanych odbywa się za pomocą standardowych procedur Read
oraz Write.


Wyszukiwarka

Podobne podstrony:
Egzamin z RP2 31 stycznia 2009 p4
CDI p4
Anatomia Kolokwium I p4 id 6275 Nieznany
elektra P4, Studia, SiMR, II ROK, III semestr, Elektrotechnika i Elektronika II, Elektra, Elektronik
p4 OBLICZENIA W PROGRAMIE MATHCAD
p4
Granice Chaosu Fraktale Peitgen recenzja p4
P4 (3)
Unit 1 P4
P4 explain how an individual?n exercise command and control
Projekty Koncowe z Analizy Ukl Dyn Przeradzki p4
fce hb samp p4
kataster p4
Podręcznik Logistyki NATO 2007 do druku po weryfikacji P4 ostateczna wersja 8 dec 08
Lancuchy Markowa 06 Naskrecki p4
P4 metody i błędy
p4 (2)
p4

więcej podobnych podstron