Szczygieł, W3 - chemiczny


Wykład 7

Przetwarzanie plików :

W języku Turbo Pascal wyróżniamy trzy klasy plików ( zdefiniowane, tekstowe i niezdefiniowane). Poza przypadkiem korzystania z predefiniowanych zmiennych plikowych tekstowych Input i Output w pozostałych przypadkach odpowiednia zmienna plikowa musi być zawsze opisana, a także skojarzona z własciwym fizycznym zbiorem danych. Przed przystąpieniem do przetwarzania tego zbioru należy jeszcze zmienną plikową 'otworzyć' a po zakończeniu przetwarzania - ' zamknąć'

Plik jest strukturą danych, której elementy tworzą ciąg i są tego samego typu

Ogólny schemat przetwarzania pliku

1. Deklaracja zmiennych plikowych

2. Skojarzenie zmiennej plikowej z plikiem fizycznym

3. Otwarcie pliku

4. Operacje na zawartości pliku fizycznego

5. Zamknięcie pliku

Ad.1 Deklaracja typu plikowego :

TYPE id_typu_plikowego = FILE OF id_typu_plikowego

VAR zmienna : id_typu_plikowego

Ad.2 Skojarzenie zmiennych plikowych z plikami fizycznymi

ASSIGN(id_zmiennej_plikowej,nazwa_pliku_fizycznego);

Przykład :

1) var plik1 : Text;

.............

Assign (plik1,'LPT1');

2) var plik2 : file of Real;

..............

Assign (plik2,'A:\ZBIORY\ZBIOR2.DOC);

Ad.3 Otwarcie pliku

W zależności od kierunku przesyłania elementów do lub z pliku stosowane są trzy standardowe procedury jego otwarcia. Są to procedury : Rewrite, Reset i Apend.

Jeżeli tworzymy nowy fizyczny (zewnętrzny) zbiór danych to należy zastosować procedurę Rewrite, której wywołanie ma postać:


Rewrite (zmienna plikowa)

Wywołanie procedury Rewrite powoduje utworzenie nowego fizycznego zbioru danych o nazwie skojarzonej z podaną zmienną plikową (przedtem musi być wywołana procedura Assign). Jeżeli zewnętrzny zbiór danych o takiej nazwie już istnieje to zostanie on usunięty i w jego miejscu będzie utworzony nowy zbiór. W obu przypadkach na dysku lub dyskietce faktycznie zostanie utworzony zbiór pusty, którego aktualnym położeniem będzie jego początek.

Do otwarcia pliku skojarzonego ze zbiorem już istniejącym służą procedury Reset i Append. Wywołanie procedury Reset ma postać :

Reset(zmienna-plikowa)

Reset powoduje po otwarciu pliku ustawienie zewnętrznego zbioru w pozycji początkowej, tj. tuż przed jego pierwszym elementem.

Natomiast wywołanie procedury Append które ma postać :

Append(zmienna-plikowa)

dotyczy wyłącznie plików tekstowych (Text) i powoduje po otwarciu pliku ustawienie zbioru na jego końcu. Dzięki temu możliwe staje się bezpośrednie dopisywanie tekstów na końcu zbioru.

Przykłady :

1) Type complex = record

` re,im : Real

end;

var plik : file of complex;

......................

Assign (plik3,'A:ZBIOR3.OUT);

Rewrite (plik3);

Po skojarzeniu zmiennej plikowej plik3 (typu rekordowego complex) ze zbiorem ZBIOR.OUT, znajdującym się na dyskietce w napędzie A, nastąpi otwarcie pliku.

2) var plik5 : file of record

re,im : Real

end;

.....................

Assign (plik5,'B:ZBIOR5.IN);

Reset (plik5);

3) var plik6 : Text;

.................

Assign (plik6,'C:\ZBIORY\ZBIOR6.TXT);

Append (plik6);

Po otwarciu pliku możliwe jest wykonanie na nim określonych operacji po których zakończeniu należy plik zamknąć . Operację zamknięcia pliku dokonuje się poprzez wywołanie procedury Close:


Close (zmienna-plikowa)

Ad. 4 (Operacje na zawartości pliku :)

- zakładanie, (tj. tworzenie, nowego fizycznego zbioru danych) pliku

- wprowadzanie do założonego pliku elementu,

- dodawanie nowych elementów do pliku juz istniejącego

- przeszukiwanie pliku - odnajdywanie w nim elementów

- wyprowadzanie elementów z pliku

- wymiana elementów pliku

ElementyGrafiki Komputerowej


Grafika komputerowa w Pascalu jest realizowana za pomocą funkcji i procedur zgrupowanych w obrębie modułu Graph. Procedury i funkcje tego modułu pozwalają rysować na ekranie pracując w trybie graficznym krzywe różnych kształtów i kolorów, wypełniać kontury określonym kolorem, a także wyświetlać na ekranie napisy (poziomo i pionowo) w różnych krojach pisma, z możliwością ich zmniejszania i powiększania.


Mikrokomputery typu PC mogą by_ wyposażone w różne karty graficzne np. CGA, EGA, HERCULES, VGA obsługujące ekrany monitorów o różnej rozdzielczości. Oczywiście rozdzielczość ekranu , czyli liczba wyświetlanych w poziomie i pionie punktów (pixels) jest ściśle związana z procedurami i funkcjami graficznymi . W celu uniezależnienia systemu Turbo Pascal od karty graficznej przewidziano dla najczęściej używanych kart sterowniki tj. programy obsługujące związek procedur i funkcji modułu Graph z tymi kartami

ELEMENTY GRAFIKI KOMPUTEROWEJ

Funkcje i procedury graficzne modu_ GRAPH

Możliwości :

- krzywe różnych kształtów i kolorów

- wypełnia_ kontury określonym kolorem

- wyprowadza_ napisy na ekran ( poziomo i pionowo)

- wybór kroju pisma i wielkości

Karty graficzne : CGA, EGA, HERCULES, VGA, SVGA

Rozdzieczość ekranu : Liczba wyświetlanych w poziomie i pionie punktów (pixels)

Sterowniki : programy obsługujące związek procedur i funkcji modułu GRAPH z pracującymi kartami.

W programie część graficzną można podzielić na trzy części

- inicjacjalizację trybu graficznego

- część wykonawczą części graficznej

- zamknięcie trybu graficznego


STRUKTURA PROGRAMU GRAFICZNEGO

Program nazwa;

uses Graph;

.............

begin

............

InitGraph ( sterownik, tryb, skorowidz);

........

CloseGraph;

RestoreCrt

end.

Program do sprawdzenia sprzętu komputerowego

Program AM52;

uses Graph;

var sterownik,tryb : Integer;

begin

DetectGraph (sterownik,tryb);

Writeln ('sterownik = ',sterownik,' tryb = ',tryb)

end.

Przykład :

1) Jeśli zmienne sterownik i tryb są zmiennymi typu Integer to wykonanie instrukcji :

sterownik := Detect;

InitGraph (sterownik,tryb,'C:\TP55');

spowoduje zainicjowanie trybu graficznego właściwego dla karty graficznej jaką posiada zestaw komputerowy




Procedury Modułu GRAPH



InitGraph (VAR Ster, tryb : Integer; sciezka : string) - inicjacja grafiki

CloseGraph - zamknięcie trybu graficznego

RestoreCrtGraph - chwilowe przejście do trybu tekstowego

SetGraphMode - powrót do trybu graficznego

DetectGraph - rozpoznanie karty graficznej

ClearDevice - czyszczenie ekranu

Procedury graficzne do rysowania

Move To(X,Y : Integer) - przemieszcza kursor graficzny do punktu X,Y

MoveRel(Dx,Dy : Integer) - przemieszcza kursor graficzny o Dx i Dy

Line(x1,y1,x2,y2) - rysuje linię o podanych współrzędnych ko_ca i pocz_tku

Line Rel(dx,dy) - rysuje linię zaczynającą się w punkcie wskazanym przez kursor i kończącą się w punkcie o współrzędnych określonych względem jego pozycji.


LineTo(x,y) - rysuje linię zaczynającą się w punkcie wskazanym przez kursor i kończącą się w punkcie o podanych współrzędnych


Procedury graficzne modułu GRAPH

Rectangle(x1,y1,x2,y2) - rysuje prostokąt

Circle(x,y,r) - rysuje okrąg

DrawPoly(n : word;var wierzcholki) - rysuje linię łamaną o zadanych wierzchołkach

SetColor(param) - ustala aktualny kolor kreślenia linii

SetBkColor(param) - ustala aktualny kolor tła

Przykład :

SetColor (Yellow);

SetLineStyle(SolidLine,0,NormWidth);

Rectangle(10,10,150,150);

SetColor(Red);

SetLineStyle(DottedLn,o,ThickWidth);

Circle(160,100,50;

Wynik :

prostokąt (żółty linią ciągłą) o wierzchołkach:

(10,10), (10,150), (150,150) i (150,10)

okrąg (czerwony pogrubioną linią kropkowaną) o środku (160,100) i promieniu 10


-

Plik jest strukturą danych, której elementy tworzą ciąg i są tego samego typu


Ogólny schemat przetwarzania pliku

1. Deklaracja zmiennych plikowych

2. Skojarzenie zmiennej plikowej z plikiem fizycznym

3. Otwarcie pliku

4. Operacje na zawartości pliku fizycznego


5. Zamknięcie pliku




Ad.1 Deklaracja typu plikowego :

TYPE id_typu_plikowego = FILE OF id_typu_plikowego

VAR zmienna : id_typu_plikowego

Ad.2 Skojarzenie zmiennych plikowych z plikami fizycznymi

ASSIGN(id_zmiennej_plikowej,nazwa_pliku_fizycznego);

Przykład :

1) var plik1 : Text;

.............

Assign (plik1,'LPT1');

2) var plik2 : file of Real;

..............

Assign (plik2,'A:\ZBIORY\ZBIOR2.DOC);


OTWARCIE PLIKU

Przykłady :

1) Type complex = record

` re,im : Real

end;

var plik : file of complex;

......................

Assign (plik3,'A:ZBIOR3.OUT);

Rewrite (plik3);

Po skojarzeniu zmiennej plikowej plik3 (typu rekordowego complex) ze zbiorem ZBIOR.OUT, znajdującym się na dyskietce w napędzie A, nastąpi otwarcie pliku.

2) var plik5 : file of record

re,im : Real

end;

.....................

Assign (plik5,'B:ZBIOR5.IN);

Reset (plik5);

3) var plik6 : Text;

.................

Assign (plik6,'C:\ZBIORY\ZBIOR6.TXT);

Append (plik6);

Po otwarciu pliku możliwe jest wykonanie na nim określonych operacji po których zakończeniu należy plik zamknąć . Operację zamknięcia pliku dokonuje się poprzez wywołanie procedury Close:

Close (zmienna-plikowa)


OPERACJE NA ZAWARTOŚCI PLIKU

1) Zapisanie tekstu wprowadzanego z klawiatury na dysku

Program AM19;

var txt : string [255];

tekst : Text;

begin

Assign (tekst,'TEKST.TXT');

Rewrite (tekst);

Writeln ('Napisz tekst - maksymalnie 255 znaków');

Writeln;

Readln (txt);

Writeln (tekst,txt)

Close (tekst)

end.

2) Odczytanie zbioru z dysku i zapisanie go na drukarkę

Program AM23;

var txt : string [255];

tekst : Text;

begin

Assign (tekst,'TEKST.TXT');

Reset (tekst);

Readln (tekst,txt);

Close (tekst);

Assign (tekst,'LPT1');

Rewrite (tekst);

Writeln (tekst,txt);

Close (tekst)

end.




Wyszukiwarka

Podobne podstrony:
Szczygieł, W3 - chemiczny
Szczygieł, W3 - chemiczny
Hoffmann, W3 - chemiczny
Wilk, W3 - chemiczny
7214, W3 - chemiczny
5133, W3 - chemiczny
W3 Chemiczne skladniki komorki
Ożyhar, W3 - chemiczny
Oleksyszyn, W3 - chemiczny
hoffmann, W3 - chemiczny
5672, W3 - chemiczny
Ożyhar, W3 - chemiczny
Lejczak, W3 - chemiczny
15, W3 - chemiczny
7386, W3 - chemiczny
(), W3 - chemiczny
(), W3 - chemiczny
Oleksyszyn, W3 - chemiczny
9451, W3 - chemiczny

więcej podobnych podstron