Przetwarzanie plików


Przetwarzanie plików

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;

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;

Przetwarzanie plików

•opis zmiennej plikowej (część opisowa)

•skojarzenie pliku z fizycznym zbiorem danych

•otwarcie pliku

•wykonanie operacji na pliku

•zamknięcie pliku

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'

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.

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

Utworzenie nowego fizycznego zbioru danych

Przykład 1:

var numery : file of integer;

begin

...

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

Rewrite (numery);

...

end.

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.

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

Zamykanie pliku

Close (zmienna_plikowa);

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)

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

Wprowadzanie elementów z pliku

Read (zmienna_plikowa,lista-zmiennych);

oraz wyłącznie dla plików tekstowych

Readln (zmienna_plikowa ,lista-zmiennych);

Wyprowadzanie elementów do pliku

Write (zmienna_plikowa,lista-zmiennych);

oraz wyłącznie dla plików tekstowych

Writeln (zmienna_plikowa ,lista-zmiennych);

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.

Grafika

Moduł Graph

Układ współrzędnych ekranu
dla karty graficznej VGA wysokiej rozdzielczości

Inicjowanie trybu graficznego

DetectGraph (sterownik, tryb)

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);

Zamykanie trybu graficznego

CloseGraph

Zmiana trybu graficznego

SetGraphMode (tryb)

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

Przełączenie na tryb tekstowy

0x08 graphic

Przykład 1:

program Grafika;

uses Graph;

var sterownik, tryb : Integer;

begin

DetectGraph (sterownik, tryb);

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

...

CloseGraph

end.

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.

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

Przykładowe stałe
definiujące tryby ekranu

liczba kolorów strony

stała wartość rozdzielczość liczba kolorów strona

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

Przykład 3:

program Grafika;

uses Graph;

var sterownik, tryb : Integer;

begin

sterownik:=VGA;

tryb:=VGAHi;

InitGraph (sterownik, tryb,'');

...

CloseGraph

end.

Funkcje i procedury dotyczące ekranu

GetMaxX rozdzielczość ekranu w kierunku osi x GetMaxY rozdzielczość ekranu w kierunku osi y

Przykład 1:

var x,y : integer;

begin

x:=GetMaxX;

y:=GetMaxY;

writeln ('Rozdzielczość ekranu: ',x,' ×',y)

end.

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

Stałe definiujące kolory

const (kolor czarny) Black = 0

(kolor Blue = 1 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

żółty Yellow = 14

biały White = 15

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ę

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

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

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)

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, ClipOff)

czyszczenie okna

ClearViewPort

Funkcje i procedury dotyczące ekranu

skierowanie danych na odpowiednią stronę

SetActivePage(strona)

wyświetlenie strony

SetVisualPage(strona)

strona (Word) - numer strony

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

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

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

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)

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

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, TopOff)

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

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

Stałe definiujące kroje pisma

const

DefaultFont = 0 standardowe

TriplexFont = 1 "triplex"

SmallFont = 2 małe

SansSerifFont = 3 "sansserif"

GothicFont = 4 gotyckie

Stałe definiujące justowanie

Lewo = 0 CenterText

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

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

8

RestoreCrtMode



Wyszukiwarka

Podobne podstrony:
Operacje na rekordach i przetwarzanie plików Instrukcja laboratoryjna
ZAJECIA 2 przetwarzanie plikow i katalogow LINUX
przetworniki indukcyjne
Prop aut W9 Ses cyfr Przetworniki fotoelektryczne
Przetworstwo produktow rolniczych
SO8 Systemy plików
MLEKO I PRZETWORY MLECZNE (2)
Ceny detaliczne i spożycie warzyw i ich przetworów
W10 Przetw A Cmin
Formaty plików dźwiękowych
W9 Przetw C A
przetworniki II opracowane
Przetwarzanie mleka koziego
dupont przetworstwo tworzyw4
Przetwornica buck id 406722 Nieznany
Materiały nieżelazne Tworzywa sztuczne Przetwórstwo Auto Expert

więcej podobnych podstron