background image

 

 

Przetwarzanie plików

background image

 

 

Typ plikowy

ciąg elementów tego samego typu, przy czym liczba 

jego składowych jest zmienna

type identyfikator_typu = file of  
opis_typu_elementów_pliku;
type identyfikator_typu = file;

Przykład:
type dane = file of Integer;
wyniki = file of Real;

background image

 

 

Text - standardowy typ plikowy

• elementy pliku: wiersze 

podzielone na znaki;

• każdy wiersz kończy para 

znaków CR/LR (carriage return 
/ line feed);

• plik kończy znak Ctrl-Z;

Przykład:

var dane : Text;

background image

 

 

Przetwarzanie plików

• opis zmiennej plikowej (część 

opisowa)

• skojarzenie pliku z fizycznym 

zbiorem danych

• otwarcie pliku
• wykonanie operacji na pliku
• zamknięcie pliku

background image

 

 

 Skojarzenie zmiennej plikowej 

z fizycznym zbiorem danych

Assign

 (identyfikator_pliku, 

wyrażenie_łańcuchowe);

identyfikator_pliku - dowolna zmienna plikowa
wyrażenie łańcuchowe - fizyczny zbiór danych

 

Fizyczne zbiory danych:

– konsola (klawiatura, ekran monitora)

'CON'

– drukarka

'LPT1'  lub  'PRN'

– szeregowe porty wejścia-wyjścia

'COM1', 'COM2'

– urządzenie puste

'NUL'

– zbiór danych na dysku

'ścieżka_dostępu'

background image

 

 

Skojarzenie zmiennej plikowej 

z fizycznym zbiorem danych

Przykład:

var zm_plikowa1, zm_plikowa2 : Text;
begin

...
Assign 

(zm_plikowa_1,'C:\DANE\PLIK.TXT');

Assign (zm_plikowa_2,'LPT1');

...
end.

background image

 

 

 

Otwieranie pliku

utworzenie nowego fizycznego zbioru danych

 

Rewrite

 (zmienna_plikowa);

lub dla plików niezdefiniowanych

Rewrite (zmienna_plikowa, rozmiar_zapisu)

 

wskaźnik plikowy (File Location Pointer)  0

gdy zbiór już istnieje zostaje usunięty i utworzony nowy

background image

 

 

Utworzenie nowego fizycznego zbioru 

danych

Przykład 1:
 
var numery : file of integer;

begin
...
Assign (numery,'C:\DANE\PLIK.OUT');
Rewrite (numery);
...
end.

background image

 

 

Przykład 2:

 type  data = record
   rok 

: Integer;

   miesiac 

: 1 .. 12;

   dzien  : 1 .. 31

                     end

var data_ur : file of data;

begin
...
Assign (data_ur,'C:\DANE\PLIK.OUT');
Rewrite (data_ur);
...
end.

background image

 

 

 

Otwieranie pliku

otwarcie już istniejącego zbioru danych

Reset

 (zmienna_plikowa);

lub dla plików niezdefiniowanych

Reset (zmienna_plikowa, rozmiar_zapisu)

Wskaźnik plikowy  0

Append (zmienna_plikowa);

     

tylko do plików 

tekstowych

Wskaźnik plikowy  koniec

background image

 

 

 

Zamykanie pliku

Close

 (zmienna_plikowa);

background image

 

 

Funkcje do przetwarzania plików 

tekstowych

Eof

 (zmienna_plikowa)

True - gdy koniec zbioru lub gdy brak elementów

Eoln

 (zmienna_plikowa)

True - gdy koniec wiersza (CR)

SeekEof

 (zmienna_plikowa)

True - jak Eof  (ignoruje spacje, tabulatory, CR i 
LF)

SeekEoln

 (zmienna_plikowa)

True - jak Eof  (ignoruje spacje, tabulatory)

background image

 

 

Funkcje i procedury do przetwarzania 

plików zdefiniowanych i 

niezdefiniowanych

Eof

 (zmienna_plikowa)

True - gdy koniec zbioru lub gdy brak elementów

FilePos

 (zmienna_plikowa)

Aktualne położenie wskaźnika plikowego (LongInt)

FileSize

 (zmienna_plikowa)

Rozmiar pliku=liczba elementów (LongInt)

Seek

 (zmienna_plikowa, pozycja)

Przesunięcie wskaźnika plikowego do elementu o 
numerze 'pozycja'

Truncate

 (zmienna_plikowa)

obcina zbiór w miejscu aktualnego położenia

background image

 

 

Read (zmienna_plikowa,lista-

zmiennych);

oraz wyłącznie dla plików tekstowych

Readln (zmienna_plikowa ,lista-

zmiennych);

 

Wprowadzanie elementów z pliku

background image

 

 

Write (zmienna_plikowa,lista-

zmiennych);

oraz wyłącznie dla plików tekstowych

Writeln (zmienna_plikowa ,lista-

zmiennych);

 

Wyprowadzanie elementów do pliku

background image

 

 

Przykład:

program zapis;
uses  Crt;

var

x : Text;
Wiersz : String;

begin
   ClrScr;
   Assign (x, 'DANE.TXT' );
   Rewrite (x);
   repeat
      readln (Wiersz);
      if Wiersz<>'' then  writeln 
(x, Wiersz);
   until Wiersz ='';
   Close (x);
readln;
end.

background image

 

 

Grafika

Moduł Graph

background image

 

 

Układ współrzędnych ekranu

dla karty graficznej VGA wysokiej rozdzielczości

63
9

34
9

0

0

background image

 

 

Inicjowanie trybu graficznego

InitGraph (sterownik, tryb, skorowidz)

sterownik 

- (Integer) wartość określająca sterownik obsługujący 

kartę 

graficzną;

tryb 

- (Integer) wartość określająca tryb pracy karty 

graficznej;
skorowidz

- (String) ścieżka dostępu do sterownika (w przypadku 

łańcucha pustego przyjmowany jest katalog bieżący);

DetectGraph (sterownik, tryb)

CloseGraph

Zamykanie trybu graficznego

background image

 

 

Zmiana trybu graficznego

 SetGraphMode (tryb)

tryb 

- (Integer) wartość określająca tryb 

pracy karty  graficznej;

Przełączenie na tryb tekstowy

 

RestoreCrtMode

background image

 

 

Przykład 1:

program Grafika;
uses  Graph;
var  sterownik, tryb : Integer;

begin
     DetectGraph (sterownik, tryb);
     InitGraph (sterownik, tryb, 
'C:\STEROWNIKI');
     ...
     CloseGraph
end.

background image

 

 

Przykład 2 (Sterownik jest w katalogu 
bieżącym):

program Grafika;
uses  Graph;
var  sterownik, tryb : Integer;

begin
     sterownik:=9;
     tryb:=2;
     InitGraph (sterownik, tryb,'');
     ...
     CloseGraph
end.

background image

 

 

Stałe definiujące sterowniki

const

Detect

= 0

CGA = 1
MCGA

= 2

EGA = 3
EGA64

= 4

EGAMono

= 5

IBM8514

= 6

HercMono

= 7

ATT400

= 8

VGA = 9
PC3270

= 10

CurrentDriver

= -128

background image

 

 

Przykładowe stałe 

definiujące tryby ekranu

stała wartość rozdzielczość

liczba kolorówstrony

const EGALo

= 0

640 x 200

16

4

EGAHi = 1

640 x 350

4

4

VGALo = 0

640 x 200 16

4

VGAMi = 1

640 x 350 16

2

VGAHi = 2

640 x 480 16

1

background image

 

 

Przykład 3:

program Grafika;
uses  Graph;
var  sterownik, tryb : Integer;

begin
     sterownik:=VGA;
     tryb:=VGAHi;
     InitGraph (sterownik, tryb,'');
     ...
     CloseGraph
end.

background image

 

 

Funkcje i procedury dotyczące ekranu

Przykład 1:

var x,y : integer;

begin
x:=GetMaxX;
y:=GetMaxY;
writeln (
'Rozdzielczość ekranu:  ',x,' 
×',
y
end.

GetMaxX

rozdzielczość ekranu w kierunku osi x

GetMaxY

rozdzielczość ekranu w kierunku osi y

background image

 

 

Ustawienie parametrów graficznych

Ustalenie koloru linii

 SetColor(kolor) 

Ustalenie koloru tła

 SetBkColor(kolor) 

kolor (Word)

- wartość lub stała określająca kolor 

background image

 

 

Stałe definiujące kolory

const

Black 

= 0

(kolor czarny)

Blue  = 1

(kolor niebieski)

Green = 2

zielony

Cyan  = 3

turkusowy

Red 

= 4

czerwony

Magenta 

= 5

karmazynowy

Brown 

= 6

brązowy

Lightgray 

= 7

jasnoszary

 

Lightblue 

= 9

jasnoniebieski

Lightgreen 

= 10

jasnozielony

Lightcyan 

= 11

jasnoturkusowy

Lightred 

= 12

jasnoczerwony

Lightmagneta 

= 13

jasnokarmazynowy

Yellow 

= 14

żółty

White  = 15

biały

 

background image

 

 

Ustawienie parametrów graficznych

Ustalenie rodzaju i grubości linii

 SetLineStyle(rodzaj,wzór,grubość) 

rodzaj (Word) - wartość lub stała określająca linię
wzór (Word)

- istotny tylko gdy rodzaj 

zdefiniowany przez programistę 

background image

 

 

Stałe definiujące linie

Stałe rodzajów linii:

const

SolidLn

= 0

ciągła

DottedLn

= 1

kropkowana

CenterLn

= 2

symetrii

DashedLn

= 3

przerywana

UserBitLn

= 4

zdefiniowana przez 

programistę (SetFillStyle)

Stałe grubości linii:

const

NormWidth = 1

normalna

ThickWidth

= 3

pogrubiona

background image

 

 

Ustawienie parametrów graficznych

Ustalenie rodzaju i koloru wypełnienia

 SetFillStyle(wzór,kolor) 

wzór (Word) - wartość lub stała określająca wzór 
wypełnienia 

     kolor (Word)

- wartość lub stała określająca kolor

Zdefiniowanie wypełnienia

 SetFillPattern(wzór,kolor) 

wzór (FillPatternType)

- ośmioelementowa tablica 

liczb  całkowitych typu Byte

     kolor (Word)

- wartość lub stała określająca kolor

background image

 

 

Stałe definiujące wypełnienia

const

EmptyFill

= 0

w kolorze tła

SolidFill

= 1

w kolorze pierwszoplanowym

LineFill

= 2

linie poziome

LtSlashFill

= 3

linie ukośne

SlashFill

= 4

linie ukośne, pogrubione

BkSlashFill

= 5

przeciwne linie ukośne

LtBkSlashFill

= 6

przeciwne linie ukośne, pogr.

HatchFill

= 7

kratka

XHatchFill

= 8

kratka X

InterleaveFill

= 9

gęste kropki

WideDotFill

= 10

kropki

CloseDotFill

= 11

rzadkie kropki

UserFill

= 12

zdefiniowana przez 

programistę (SetFillPattern)

background image

 

 

Funkcje i procedury dotyczące ekranu

czyszczenie ekranu, ustawienie okna na cały ekran

ClearDevice

deklaracja okna

 

SetViewPort (x1,y1,x2,y2,odcięcie)

x1,y1 (Word) - współrzędne lewego-górnego narożnika okna

x2,y2 (Word) - współrzędne prawego-dolnego narożnika okna
odcięcie (Boolean)

- TRUE - grafika ograniczona do 

bieżącego okna
(mogą być stałe: ClipOn, ClipOf)

czyszczenie okna

ClearViewPort

background image

 

 

Funkcje i procedury dotyczące ekranu

skierowanie danych na odpowiednią stronę

 SetActivePage(strona) 

wyświetlenie strony

 

 SetVisualPage(strona) 

strona (Word) - numer strony

background image

 

 

Funkcje i procedury dotyczące ekranu

Przesunięcie wskaźnika ekranu do punktu o współrzędnych 

(x,y); 

 

MoveTo(x,y) 

 

x,y : Integer

Przesunięcie wskaźnika ekranu o wektor (x,y); 

 

MoveRel(

x,

y)   

x,y : Integer

Współrzędne aktualnego położenia wskaźnika ekrany 

względem bieżącego okna

GetX
GetY

background image

 

 

Procedury graficzne

Narysowanie linii od punktu o współrzędnych (x1,y1) do punktu 

o współrzędnych (x2,y2) 

 

Line(x1,y1,x2,y2) 

 

x1,y1,x2,y2 : Integer

Narysowanie linii od bieżącego położenia wskaźnika ekranu do 

punktu oddalonego o wektor (x,y); 

 

LineRel(

x,

y) 

 

x,y : Integer

Narysowanie linii od bieżącego położenia wskaźnika ekranu do 

punktu o współrzędnych (x,y); 

 

LineTo(x,y) 

 

x,y : Integer

 

background image

 

 

Procedury graficzne

Zaznaczenie punktu o współrzędnych (x,y) 

 

PutPixel(x,y,kolor) 

 

x,y 

Integer

kolor  : Word

Narysowanie prostokąta

Rectangle (x1,y1,x2,y2)

x1,y1 (Integer)- współrzędne lewego-górnego narożnika okna

x2,y2 (Integer)- współrzędne prawego-dolnego narożnika okna

background image

 

 

Procedury graficzne

Narysowanie okręgu

Circle (x,y,r)

x,y (Integer)

- współrzędne środka okręgu

r (Word)

- promień okręgu

Narysowanie wielokąta

DrawPoly (n,wsp)

n (Word)

- liczba wierzchołków wielokąta

wsp  - współrzędne wierzchołków (zmienna  tablicowa o 
elementach typu PointType)

background image

 

 

Procedury graficzne

Narysowanie łuku okręgu

Arc (x,y,a,b,r)

x,y (Integer)

- współrzędne środka okręgu

a,b (Word)

  

- kąt początkowy i kąt końcowy 

promienia 

wodzącego (w stopniach względem osi x)

r (Word)

- promień okręgu

Narysowanie łuku elipsy

Ellipse (x,y,a,b,xr,yr)

x,y,a,b 

- j.w.

xr,yr (Word)

- długość osi elipsy w kierunku osi x i y

background image

 

 

Procedury graficzne

Wypełnienie prostokąta aktualnym znakiem wypełnienia i 

kolorem

Bar (x1,y1,x2,y2)

x1,y1 (Integer)- współrzędne lewego-górnego narożnika okna

x2,y2 (Integer)- współrzędne prawego-dolnego narożnika okna

Narysowanie prostopadłościanu i wypełnienie przedniej ściany

Bar3D (x1,y1,x2,y2,g,w)

g (Word)

- głębokość prostopadłościanu

w (Boolean)

- TRUE - będzie zaznaczona górna płaszczyzna

(mogą być stałe: TopOn, TopOf)

background image

 

 

Procedury graficzne

Wypełnienie wycinka kołowego

Arc (x,y,a,b,r)

x,y (Integer)

- współrzędne środka okręgu

a,b (Word)

  

- kąt początkowy i kąt końcowy 

promienia 

wodzącego (w stopniach względem osi x)

r (Word)

- promień okręgu

Narysowanie i wypełnienie elipsy

FillEllipse (x,y,r1,r2)

x,y (Integer)  - środek elipsy
r1,r2 (Word)

- półosie elipsy

background image

 

 

Funkcje i procedury tekstowe

Ustawienie kroju pisma 

 SetTextStyle(krój,kierunek,rozmiar) 

krój (Word)

- wartość lub stała określająca krój

kierunek (Word)

 - wartość lub stała określająca kierunek

 

rozmiar (Word)  - wartość określająca rozmiar (1..10)

Wyrównanie tekstu

 SetTextJustify(poziom,pion) 

poziom (Word) - wartość lub stała określająca poziome 
wyrównanie pion (Word)

- wartość lub stała 

określająca pionowe wyrównanie

background image

 

 

Stałe definiujące kroje pisma

const

DefaultFont = 0

standardowe

TriplexFont = 1

"triplex"

SmallFont

= 2

małe

SansSerifFont

= 3 "sansserif"

GothicFont = 4

gotyckie

background image

 

 

Stałe definiujące justowanie

const

CenterText = 0

lewo

LeftText

= 1

Środek

RightText

= 2

prawo

BottomText = 0

dół

TopText

= 2

góra

Stałe definiujące kierunek

const

HorizDir

= 0

lewo

VertDir

= 1

Środek

background image

 

 

Stałe definiujące kierunek

const

HorizDir

= 0

lewo

VertDir

= 1

Środek

background image

 

 

Procedury tekstowe

Wyprowadzenie tekstu na ekran 

 

OutText(tekst) 

 

 

OutTextXY(x,y,tekst)   

x,y (Integer)  - położenie tekstu w bieżącym oknie
tekst (String) - tekst wyprowadzany na ekran


Document Outline