PODSTAWY PROGRAMOWANIA

Wielkość: px
Rozpocząć pokaz od strony:

Download "PODSTAWY PROGRAMOWANIA"

Transkrypt

1 PODSTAWY PROGRAMOWANIA Andrzej Marciniak Prezentacja multimedialna przygotowana za pomocą systemu Corel Presentations X3 Copyright by Andrzej Marciniak PP-10(1 z 66)

2 Na poprzednim wykładzie... Pprzetwarzanie obiektów (cd.) < obsługa wiadomości < własności < własności tablicowe < specyfikacje opcjonalne w deklaracjach własności < pokrywanie własności < własności klasowe Płącza programowe Pdodatkowe informacje o modułach < części inicjująca i finalizująca < moduły wzajemnie zależne Pbiblioteki łączone dynamicznie < dostęp do funkcji i procedur < moduły importowe < importowanie statyczne i dynamiczne < tworzenie bibliotek DLL PP-10(2 z 66)

3 Na tym wykładzie... Ppakiety < ogólna postać pakietu < wykorzystanie pakietu w projekcie < tworzenie pakietów Poperacje wejścia-wyjścia < standardowe wejście-wyjście w programach tekstowych < przetwarzanie plików PP-10(3 z 66)

4 Pakiety Pakiet jest specjalnym rodzajem biblioteki łączonej dynamicznie, używanym albo przez programy okienkowe, albo przez środowisko Delphi, albo przez jedne i drugie. Wyróżniamy: Ppakiety wykonawcze (ang. runtime packages) mają na celu zwiększenie funkcjonalności samych programów okienkowych, Ppakiety projektowe (ang. design-time packages) służą do instalowania komponentów w środowisku Delphi. PP-10(4 z 66)

5 Pakiety Skompilowane wersje pakietów są zapisywane w plikach o rozszerzeniu nazwy BPL (skr. ang. Borland package library). Dla każdego skompilowanego pakietu jest też tworzony binarny plik.dcp, zawierający jego nagłówek oraz połączenie wszystkich skompilowanych modułów pakietu. Pliki z tekstami źródłowymi pakietów mają rozszerzenie nazwy DPK. PP-10(5 z 66)

6 Pakiety Tekst źródłowy pakietu ma następującą postać: package nazwa-pakietu; requires lista-nazw-pakietów; contains lista-nazw-modułów; end. przy czym w ogólności obie klauzule (requires i contains) są opcjonalne. Lista nazw pakietów wyspecyfikowana w klauzuli requires określa inne, zewnętrzne pakiety używane przez dany pakiet. W klauzuli contains wymienia się moduły składające się na PP-10(6 z 66) dany pakiet.

7 Pakiety Pakiety nie mogą zawierać odwołań cyklicznych, czyli: P w klauzli requires pakiet nie może odwoływać się do siebie, P łańcuch wzajemnych odwołań pakietów nie może zamknąć się (jeśli np. pakiet A wymaga pakietu B, a pakiet B wymaga pakietu C, to klauzula requires pakietu C nie może specyfikować pakietu A). W klauzuli contains za nazwą każdego modułu można wyspecyfikować słowo kluczowe in z nazwą pliku źródłowego z tekstem modułu (ujętą w apostrofy), np. conains MójModuł in C:\ProjektyDelphi\MójModuł.pas ; PP-10(7 z 66)

8 Pakiety Pakiet Embarcadero Delphi XE2 jest dostarczany z wieloma, skompilowanymi pakietami wykonawczymi i projektowymi. Po standardowej instalacji pakietu w 32-bitowej wersji systemu Windows skompilowane wersje pakietów wykonawczych (m. in. pliki rtl160.bpl i vcl160.bpl) są zapisane w podkatalogu System32 katalogu Windows, a pakiety projektowe w podkatalogach bin i bin64 katalogu Program Files/Embarcadero PP-10(8 z 66) /RAD Studio/9.0.

9 Pakiety W celu wykorzystania pakietu wykonawczego w projekcie należy: Pdo zintegrowanego środowiska programowania wczytać z dysku projekt (plik.dpr) lub utworzyć w tym środowisku nowy projekt, Pzainicjować polecenie Project6Options, tu jest to polecenie PP-10(9 z 66)

10 Pakiety W celu wykorzystania pakietu wykonawczego w projekcie należy (cd.): Puaktywnić element Packages 6 Runtime Packages i w oknie z prawej strony ustalić wartość true dla opcji Link with runtime packages, tu jest ta opcja PP-10(10 z 66)

11 Pakiety W celu wykorzystania pakietu wykonawczego w projekcie należy (cd.): Puaktywnić opcję Runtime packages i kliknąć w piktogram z trzema kropkami, co spowoduje wyświetlenie okienka Runtime packages i... tu kliknąć PP-10(11 z 66)

12 Pakiety W celu wykorzystania pakietu wykonawczego w projekcie należy (cd.): P... i w podokienku wejściowym wyświetlonego okienka dialogowego wpisać nazwę pakietu (bez rozszerzenia), po czym wybrać przycisk Add lub odszukać pakiet przez wybór piktogramu Browse for folder; po wykonaniu tych operacji wybrać przycisk OK. tu wpisać nazwę Pakiety, których nazwy znajdują się na liście pakietów w powyższym okienku są automatycznie łączone z programem podczas jego kompilowania. piktogram Browse for folder PP-10(12 z 66)

13 Pakiety W celu wykorzystania w projekcie zainstalowanego pakietu projektowego (niekoniecznie standardowego) należy go włączyć (znak T) na liście Design packages wyświetlanej na stronie Project Options po zainicjowaniu polecenia Project 6 Options i wyborze elementu Packages. Dodanie pakietu projektowego do listy następuje po wyborze w tym okienku przycisku Add. tu włączyć PP-10(13 z 66)

14 Pakiety W środowisku Delphi tworzenie pakietów jest w znacznym stopniu zautomatyzowane za pomocą edytora pakietów. Aby utworzyć nowy pakiet kolejno należy: Pzainicjować polecenie wybrać ten File 6 New 6 Package - Delphi lub kliknąć piktogram w piktogram Package w okienku wyświetlanym po zaincjowaniu polecenia File 6 New 6 Other i wyborze elementu Delphi Project, PP-10(14 z 66)

15 Pakiety co spowoduje wyświetlenie w oknie Project Manager (z prawej striny ekranu) struktury hierarchicznej pakietu (Package1 jest domyślną nazwą pakietu), Pw celu dodania modułu w klauzuli contains pakietu zlokalizować kursor myszki na węźle Contains, struktuty pakietu, nacisnąć prawy klawisz myszki i wmenu kontekstowym zainicjować polecenie Add, po czym wybrać odpowiedni moduł w wyświetlonym oknie Add to Project (spowoduje to dodanie nazwy modułu w węźle Contains), Pw celu uwzględnienia w bieżącym pakiecie innego pakietu zlokalizować kursor myszki na węźle Requires i po naciśnięciu prawego kursora myszki w wyświetlonym menu kontekstowym zainicjować polecenie Add References, po czym w wyświetlonym okienku Add określić wymagany pakiet, okienko edytora pakietów PP-10(15 z 66)

16 Pakiety Pzainicjować polecenie Project 6 Options, uaktywnić element Description i na wyświetlonej stronie włączyć parametr Designtime only, gdy ma zostać utworzony pakiet projektowy, lub parametr Runtime only w przypadku tworzenia pakietu wykonawczego (domyślnie jest włączony parametr Designtime and runtime, co oznacza utworzenie pakietu jednocześnie obu rodzajów), po czym wybrać przycisk OK tego okienka, Pzainicjować polecenie Project 6 Compile. PP-10(16 z 66)

17 Pakiety Polecenie Project 6 Compile powoduje zapisanie na dysku tylko pliku.bpl, tj. skompilowanej wersji pakietu. W celu zapisania jego wersji źródłowej, czyli pliku.dpk, należy zainicjować polecenie File 6 Save. Pakiety stworzono po to, aby można było odseparować moduły wykorzystywane w wielu programach od właściwych programów. Pakiety są instalowane tylko raz, niezależnie od tego, ile programów przygotowanych w środowisku Delphi będzie z nich korzystało. Dystrybuując określony produkt programowy można użytkownikowi za pierwszym razem przesłać program z niezbędnymi pakietami, a przy dystrybucji kolejnych wersji programu (korzystających z tych samych pakietów) przekazywać tylko uaktualnienie samego programu. PP-10(17 z 66)

18 Pakiety Przykład Przykład pokazuje różnicę w zajętości pamięci przez programy samowystarczalne i korzystające z pakietów. Po uruchomieniu środowiska Delphi dla standardowej (pustej) formatki i zainicjowaniu polecenia Project 6 Build na dysku zostanie utworzena samowystarczająca wersja wykonywalna programu o pewnej domyślnej nazwie. Wyświetlając w systemie Windows właściwości powstałego pliku.exe możemy przekonać się, że zajmuje on około 7,08 MB. Jeśli zainicjujemy dalej polecenie Project 6 Options i w wyświetlonym okienku przy aktywności elementu Packages 6 Runtime Packages ustalimy wartość true parametru Link with runtime packages, po czym wybierzemy przycisk OK i ponownie zainicjujemy polecenie Project 6 Build, to okaże się, że plik wykonywalny tego programu zaimie na dysku około 2,19 MB (będzie ponad trzykrotnie mniejszy). PP-10(18 z 66)

19 Wykonanie programu przez komputer polega w zasadzie na wprowadzeniu odpowiednich danych do pamięci operacyjnej, wykonaniu poszczególnych instrukcji programu przetwarzających te dane oraz wyprowadzeniu uzyskanych wyników. Do wprowadzania i wyprowadzania danych służą urządzenia zewnętrzne komputera: klawiatura, ekran monitora, drukarka, dyski elastyczne, stałe, optyczne (CD-ROM) itp. Dane wprowadzane z tych urządzeń oraz wyprowadzane poprzez te urządzenia będziemy czasami nazywać fizycznymi zbiorami danych. PP-10(19 z 66)

20 Do obsługi fizycznych zbiorów danych w programie paskalowym stosuje się pliki, które są logicznymi modelami zbiorów fizycznych. W języku Delphi wyróżniamy trzy klasy plików: Pzdefiniowane, Ptekstowe, Pniezdefiniowane. PP-10(20 z 66)

21 Opis pojedynczego typu plikowego zdefiniowanego lub niezdefiniowanego ma postać odpowiednio type identyfikator-pliku = file of opis-typu- elementów-pliku; i type identyfikator-pliku = file; a typ plikowy tekstowy określony jest za pomocą predefiniowanego identyfikatora Text lub TextFile. PP-10(21 z 66)

22 W języku Delphi użytkownik ma do dyspozycji dwie predefiniowane zmienne plikowe (typu Text): Input i Output, które są skojarzone ze standardowymi urządzeniami wejścia-wyjścia systemu komputerowego określonymi w systemie operacyjnym (zwykle są to klawiatura i ekran monitora). Pliki Input i Output są otwierane automatycznie w chwili rozpoczęcia wykonywania programu tekstowego oraz zamykane w chwili zakończenia jego wykonywania. PP-10(22 z 66)

23 Do wprowadzania danych ze standardowego urządzenia wejścia systemu komputerowego (zwykle klawiatury) służą standardowe procedury Read i Readln, których wywołania mają odpowiednio postać: Read (lista-zmiennych) i Readln (lista-zmiennych) Elementy listy zmiennych mogą być dowolnymi zmiennymi typu całkowitego, rzeczywistego, znakowego lub łańcuchowego. PP-10(23 z 66)

24 Podane wywołanie procedury Read powoduje wprowadzenie ciągu znaków z pliku Input (tj. z klawiatury), zinterpretowanie ich jako umownych zapisów wartości danych oraz przypisanie danych o tych wartościach zmiennym wyspecyfikowanym w liście. Wywołanie procedury Readln, po wykonaniu tych samych czynności, powoduje dodatkowo przejście do początku następnego wiersza. Jeśli procedura Readln zostanie wywołana bez listy argumentów (tylko przez nazwę), to system będzie czekał na naciśnięcie klawisza Enter. Tego typu wywołanie może więc służyć do chwilowego zatrzymania wykonywania programu. PP-10(24 z 66)

25 Do wyprowadzania wyników programów tekstowych na standardowe urządzenie wyjścia (zwykle symulowane okienko tekstowe na ekranie) służą procedury standardowe Write i Writeln, których wywołania mają postać odpowiednio: Write (lista-argumentów-wyjściowych) i Writeln (lista-argumentów-wyjściowych) Różnica pomiędzy tymi procedurami polega na tym, że procedura Writeln powoduje dodatkowo przejście do następnego wiersza. Samo przejście do następnego wiersza otrzymuje się przez wywołanie procedury Writeln bez listy PP-10(25 z 66) parametrów.

26 Elementy listy argumentów wyjściowych oddziela się przecinkami i powinny mieć jedną z poniższych postaci: wyrażenie wyrażenie:długość wyrażenie:długość:miejsca-dziesiętne Parametr długość określa minimalną długość pola wyjściowego i powinien być wyrażeniem typu całkowitego o wartości większej od zera. Jeżeli dla wyprowadzenia wyrażenia wyjściowego potrzeba większego pola niż to określa parametr długość, to jest wyprowadzana taka liczba znaków, jaka jest niezbędna do przedstawienia tego wyrażenia. Parametr miejsca dziesiętne określa liczbę miejsc dziesiętnych po kropce w stałoprzecinkowym przedstawieniu wartości typu rzeczywistego i może zostać podany tylko dla typów rzeczywistych i tylko w przypadku, gdy podany jest także parametr długość. PP-10(26 z 66)

27 Poza przypadkiem korzystania w programach tekstowych 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łaściwym fizycznym zbiorem danych. Przed przystąpieniem do przetwarzania tego zbioru należy jeszcze zmienną plikową otworzyć, a po zakończeniu przetwarzania zamknąć. PP-10(27 z 66)

28 opis zmiennej plikowej (w części opisowej) skojarzenie pliku z fizycznym zbiorem danych Schemat przetwarzania dowolnego pliku otwarcie pliku wykonanie operacji na pliku zamknięcie pliku PP-10(28 z 66)

29 W przetwarzaniu plików możemy wyróżnić następujące sytuacje: P zakładanie (tworzenie) nowego fizycznego zbioru danych, P wprowadzanie do założonego pliku elementów, P dodawanie nowych elementów do pliku już istniejącego, P przeszukiwanie pliku, tj. odnajdywanie w nim określonych elementów, P wyprowadzanie elementów z pliku, P wymiana elementów pliku. Postępowanie w każdej z tych sytuacji jest inne (inne procedury wejścia-wyjścia). PP-10(29 z 66)

30 Do skojarzenia zmiennej plikowej z fizycznym zbiorem danych służy procedura standardowa AssignFile (Assign), której wywołanie ma postać AssignFile (identyfikator-pliku, wyrażenie- łańcuchowe) gdzie identyfikator pliku oznacza dowolną zmienną plikową, a wyrażenie łańcuchowe (typu string lub PChar) określa fizyczny zbiór danych. Wymaga się przy tym, by plik o podanym identyfikatorze nie był już otwarty. PP-10(30 z 66)

31 Za pomocą procedury AssignFile można skojarzyć zmienną plikową z: # klawiaturą, # ekranem monitora, # drukarkami, # złączami (portami) wejścia-wyjścia, # zbiorem danych znajdującym się na dysku stałym lub dyskietkach w określonym napędzie. Do oznaczania standardowych urządzeń można przy tym korzystać z łańcuchów, takich jak: # CON (konsola wprowadzanie z klawiatury, wyprowadzanie na ekran monitora), # LPTx (drukarka x), # COMx (szeregowe złącze wejścia-wyjścia x) PP-10(31 z 66) # NUL (urządzenia puste ).

32 Przykłady 1) var plik1 : Text;... AssignFile (plik1, LPT1 ); 2) var plik2 : file of Extended;... AssignFile (plik2, A:\ZBIORY\ZBIOR2.DOC ); 3) AssignFile (Input, ); Reset (Input); AssignFile (Output, ); Rewrite (Output); Wywołania te odpowiadają standardowym czynnościom, wykonywanym automatycznie na predefiniowanych zmiennych plikowych tekstowych Input i Output, przed wykonaniem każdego programu tekstowego (zamieszczenie PP-10(32 z 66) tych wywołań można zatem pominąć).

33 W zależności od kierunku przesyłania elementów do lub z pliku są stosowane trzy standardowe procedury jego otwierania. Są to procedury: PRewrite, PReset, PAppend. PP-10(33 z 66)

34 Jeśli tworzymy nowy fizyczny zbiór danych, to należy zastosować procedurę Rewrite, której wywołanie ma postać Rewrite (zmienna-plikowa) lub Rewrite (zmienna-plikowa, rozmiar-zapisu) przy czym druga postać wywołania dozwolona jest wyłącznie dla pliku niezdefiniowanego. PP-10(34 z 66)

35 Wywołanie procedury Rewrite powoduje utworzenie nowego fizycznego zbioru danych o nazwie skojarzonej z podaną zmienną plikową. 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. Dla plików niezdefiniowanych w wywołaniu procedury Rewrite można za pomocą drugiego argumentu (rozmiar zapisu) określić rozmiar tworzonych zapisów zewnętrznego zbioru danych. Argument ten powinien być typu Word, a jego pominięcie powoduje przyjęcie dla plików niezdefiniowanych domyślnej wartości 128 (bajtów). PP-10(35 z 66)

36 Przykłady 1) type complex = record re, im : Extended end; var plik3 : file of complex;... AssignFile (plik3, A:ZBIOR3.OUT ); Rewrite (plik3); 2) var plik4 : file;... AssignFile (plik4, C:\ZBIORY\ZBIOR4.OUT ); Rewrite (plik4, 100); PP-10(36 z 66)

37 Do otwarcia pliku skojarzonego ze zbiorem już istniejącym służą procedury Reset i Append. Wywołanie procedury Reset postaci Reset (zmienna-plikowa) lub Reset (zmienna-plikowa, rozmiar-zapisu) powoduje po otwarciu pliku ustawienie zewnętrznego zbioru w pozycji początkowej, tj. tuż przed jego pierwszym elementem. PP-10(37 z 66)

38 Wywołanie procedury Append, które ma postać Append (zmienna-plikowa) dotyczy wyłącznie plików tekstowych (TextFile, 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. PP-10(38 z 66)

39 Przykłady 1) var plik5 : file of record re, im : Extended end;... AssignFile (plik5, B:ZBIOR5.IN ); Reset (plik5); 2) var plik6 : Text;... AssignFile (plik6, C:\ZBIORY\ZBIOR6.TXT ); Append (plik6); PP-10(39 z 66)

40 Po otwarciu pliku możliwe jest wykonanie na nim określonych operacji, po których zakończeniu należy plik zamknąć. Operacji zamknięcia pliku (i tym samym skojarzonego z nim zewnętrznego zbioru danych) dokonuje się poprzez wywołanie procedury CloseFile (Close): CloseFile (zmienna-plikowa) Po zamknięciu pliku można daną zmienną plikową skojarzyć z innym fizycznym zbiorem danych. PP-10(40 z 66)

41 W zależności od rodzaju pliku, do jego założenia oraz wyprowadzenia do niego (z pamięci) elementów stosuje się następujące procedury standardowe: PWrite (pliki tekstowe i zdefiniowane), PWriteln (pliki tekstowe) PBlockWrite (pliki niezdefiniowane). PP-10(41 z 66)

42 Dla plików tekstowych stosuje się procedury Write i Writeln. Jeśli w programie wykorzystuje się niestandardową zmienną plikową tekstową (musi być ona zadeklarowana), to zmienna ta powinna być wyspecyfikowana w wywołaniach tych procedur: Write (zmienna-plikowa, lista-argumentów- wyjściowych) i Writeln (zmienna-plikowa, lista-argumentów- wyjściowych) PP-10(42 z 66)

43 Przykład Program tekstowy, który zapisuje tekst wprowadzony z klawiatury na dysku. Dla tworzonego na dysku pliku przyjęto nazwę TEKST.TXT. program programam32; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; var txt : string; tekst : TextFile; begin AssignFile (tekst, TEKST.TXT ); Rewrite (tekst); try Writeln ( Napisz tekst : ); Readln (txt); Writeln (tekst, txt) finally CloseFile (tekst) end end. PP-10(43 z 66)

44 Zakładanie plików zdefiniowanych oraz wyprowadzanie (zapisywanie) do nich elementów realizuje się poprzez wywołanie procedury Write, które w ogólności ma postać Write (zmienna-plikowa, lista-zmiennych- wyjściowych) Powyższe wywołanie powoduje zapisanie do zewnętrznego zbioru danych wartości wyszczególnionych zmiennych, przy czym po każdorazowym zapisaniu wartości pojedynczej zmiennej następuje przesunięcie aktualnego położenia zbioru do początku następnego jego elementu. Jeżeli aktualnym położeniem zbioru jest jego koniec, to zbiór PP-10(44 z 66) zostanie rozszerzony.

45 Przykład (różnica pomiędzy plikiem tekstowym i zdefiniowanym) program programam36; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; var plik_tekstowy : TextFile; plik_zdefiniowany : file of Word; liczba : Word; begin AssignFile (plik_tekstowy, ZBIOR1.TXT ); Rewrite (plik_tekstowy); AssignFile (plik_zdefiniowany, ZBIOR2.TYP ); Rewrite (plik_zdefiniowany); liczba:=43210; try Write (plik_tekstowy, liczba); Write (plik_zdefiniowany, liczba) finally CloseFile (plik_tekstowy); CloseFile (plik_zdefiniowany) end end. PP-10(45 z 66)

46 Przykład (różnica pomiędzy plikiem tekstowym i zdefiniowanym) Utworzony przez program plik ZBIOR1.TXT ma postać Każda cyfra jest pamiętana jako jeden znak ASCII, a cały plik zajmuje 5 bajtów. Zawartością pliku ZBIOR2.TYP są znaki ASCII o kodach 202 i 168, tj. dla matrycy amerykańskiej znaki =) Plik ZBIOR2.TYP zajmuje na dysku tylko dwa bajty, a zapisaną w nim wartość liczbową otrzymamy, gdy zawartość tych bajtów zinterpretujemy jako liczbę typu Word. Należy przy tym pamiętać, że system operacyjny zamienia w słowie bajty bardziej i mniej znaczące. Interpretacja zapisu wygląda zatem następująco: =) (ASCII) = CAA8 (szesnastkowo) 6 A8CA (szesnastkowo po zamianie bajtów) = = PP-10(46 z 66) =

47 Pliki niezdefiniowane, tj. pliki, dla których nie określono typów ich elementów, umożliwiają wykonywanie operacji wejścia-wyjścia bezpośrednio pomiędzy zmiennymi programu i zewnętrzną pamięcią dyskową. Plik niezdefiniowany może być skojarzony z dowolnym zbiorem dyskowym, bez względu na sposób jego organizacji. Jeśli podczas otwarcia pliku niezdefiniowanego przeznaczonego do zapisu (wyprowadzania) elementów nie określono rozmiaru zapisu (poprzez parametr procedury Rewrite), to przyjmuje się domyślnie, że rozmiar ten wynosi 128 bajtów. Zalecanym jednak rozmiarem jest 1, gdyż jest to jedyna wartość, która prawidłowo odzwierciedla rozmiar zapisu dowolnego zbioru dyskowego. Przy wartości tej nie nastąpi PP-10(47 z 66) bowiem podzielenie zapisu.

48 Do założenia i zapisu elementów do pliku niezdefiniowanego służy procedura BlockWrite, której wywołanie ma postać BlockWrite (zmienna-plikowa, bufor, licznik) lub BlockWrite (zmienna-plikowa, bufor, licznik, wynik) Jeśli w wywołaniu procedury BlockWrite nie podano ostatniego argumentu, to powoduje ona wprowadzenie do zbioru reprezentowanego przez zmienną plikową liczby zapisów równej lub mniejszej od argumentu licznik, począwszy od pierwszego bajtu pamięci PP-10(48 z 66) zajmowanego przez zmienną bufor.

49 Do założenia i zapisu elementów do pliku niezdefiniowanego służy procedura BlockWrite, której wywołanie ma postać BlockWrite (zmienna-plikowa, bufor, licznik) lub BlockWrite (zmienna-plikowa, bufor, licznik, wynik) Podczas tej operacji wystąpi błąd wejścia-wyjścia, gdy liczba wyprowadzonych zapisów nie jest równa wartości określonej przez licznik (sytuacja taka zaistnieje w chwili przepełnienia dysku). Jeśli podano także zmienną wynik, to zawierać ona będzie liczbę faktycznie PP-10(49 z 66) wyprowadzonych na dysk zapisów i wspomniany błąd nigdy nie wystąpi.

50 W zależności od rodzaju pliku, do wprowadzenia z niego (odczytu) elementów stosuje się następujące procedury standardowe: P Read (pliki tekstowe i zdefiniowane), P Readln (pliki tekstowe), P BlockRead (pliki niezdefiniowane). PP-10(50 z 66)

51 Procedurami służącymi do odczytu elementów niestandardowych plików tekstowych są Read i Readln o wywołaniach odpowiednio: Read (zmienna-plikowa, lista-zmiennych- wejściowych) oraz Readln (zmienna-plikowa, lista-zmiennych- wejściowych) gdzie zmienna plikowa identyfikuje plik typu TextFile lub Text. PP-10(51 z 66)

52 Przykład (odczytu pliku tekstowego z dysku i jego wyprowadzenie na drukarkę) program programam40; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; var txt : ShortString; tekst : TextFile; begin AssignFile (tekst, TEKST.TXT ); Reset (tekst); Readln (tekst, txt); CloseFile (tekst); AssignFile (tekst, LPT1 ); Rewrite (tekst); Writeln (tekst, txt); CloseFile (tekst) end. Zauważmy, że w programie tym zmienną plikową tekst wykorzystano do obsługi dwu różnych zbiorów fizycznych. PP-10(52 z 66)

53 W przetwarzaniu plików tekstowych pomocne są cztery standardowe funkcje Eof, Eoln, SeekEof i SeekEoln o wartościach logicznych (True lub False). Funkcje te określają osiągnięcie lub nieosiągnięcie końca wiersza lub końca zbioru. Ich wywołania mają postać odpowiednio: Eof (zmienna-plikowa) lub Eof Eoln (zmienna-plikowa) Eoln SeekEof (zmienna-plikowa) SeekEof SeekEoln (zmienna-plikowa) SeekEoln przy czym pominięcie zmiennej plikowej oznacza, że wywołanie dotyczy standardowego pliku wejściowego Input. PP-10(53 z 66)

54 Wartością funkcji Eof jest wartość logiczna True, gdy plik znajduje się w pozycji poza ostatnim znakiem zbioru lub gdy zbiór nie zawiera żadnych elementów. W przeciwnym przypadku wartością funkcji Eof jest False. Funkcja SeekEof daje takie same wyniki z tym, że ignoruje najbliższe spacje, znaki tabulacji oraz znaki CR i LF. Funkcja Eoln daje wartość logiczną 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 przypadku wartością funkcji Eoln jest wartość logiczna False. Wykonanie funkcji SeekEoln daje takie same wyniki, ale ignoruje najbliższe spacje i znaki tabulacji (jest to wygodne m. in. przy odczytywaniu ze zbiorów tekstowych wartości numerycznych). PP-10(54 z 66)

55 Do odczytywania (wprowadzania do pamięci) elementów plików zdefiniowanych służy procedura standardowa Read o wywołaniu: Read (zmienna-plikowa, lista-zmiennych- wejściowych) Wywołanie to powoduje wczytanie z zewnętrznego zbioru danych elementów i podstawienie ich wartości pod wyspecyfikowane zmienne wejściowe. Po każdorazowym odczytaniu pojedynczego elementu następuje przy tym przesunięcie aktualnego położenia zbioru do następnego elementu. PP-10(55 z 66)

56 Do odczytu elementów pliku niezdefiniowanego służy procedura standardowa BlockRead, której wywołanie w ogólności ma postać BlockRead (zmienna-plikowa, bufor, licznik) lub BlockRead (zmienna-plikowa, bufor, licznik, wynik) Wywołanie procedury BlockRead bez wyspecyfikowania zmiennej wynik powoduje odczytanie z zewnętrznego zbioru danych liczby zapisów równej lub mniejszej od wartości licznik i wprowadzenie ich do miejsca pamięci, począwszy od pierwszego bajtu zajmowanego przez zmienną bufor. PP-10(56 z 66)

57 Do odczytu elementów pliku niezdefiniowanego służy procedura standardowa BlockRead, której wywołanie w ogólności ma postać BlockRead (zmienna-plikowa, bufor, licznik) lub BlockRead (zmienna-plikowa, bufor, licznik, wynik) Podczas tej operacji wystąpi błąd, gdy liczba odczytanych zapisów nie jest równa wartości określonej przez licznik (po osiągnięciu końca zbioru i dotychczasowym wprowadzeniu liczby zapisów mniejszej niż licznik). Gdy wyspecyfikowano także zmienną wynik, to zawierać ona PP-10(57 z 66) będzie liczbę faktycznie odczytanych zapisów zbioru i błąd nie wystąpi.

58 W przetwarzaniu plików zdefiniowanych i niezdefiniowanych często wykorzystuje się następujące funkcje i procedury standardowe: P Eof(zmienna-plikowa) informuje o osiągnięciu lub nieosiągnięciu końca zbioru, P FilePos(zmienna-plikowa) podaje aktualną pozycję zbioru, P FileSize(zmienna-plikowa) podaje aktualny rozmiar zbioru, PP-10(58 z 66)

59 W przetwarzaniu plików zdefiniowanych i niezdefiniowanych często wykorzystuje się następujące funkcje i procedury standardowe: PSeek(zmienna-plikowa, pozycja) przesuwa aktualne położenie zbioru do elementu o podanym numerze porządkowym, PTruncate(zmienna-plikowa) obcina zbiór w miejscu jego aktualnego położenia. PP-10(59 z 66)

60 Przykład program programam47; {$APPTYPE CONSOLE} {$R *.res} uses System.SysUtils; var plik : file of record... end; begin AssignFile (plik, DANE.ROB ); Reset (plik); try Seek (plik, 50); Truncate (plik) finally CloseFile (plik) end end. Program powoduje usunięcie ze zbioru DANE.ROB elementów począwszy od elementu o numerze porządkowym 50. PP-10(60 z 66)

61 Inne procedury standardowe związane z przetwarzaniem plików: P ChDir (wyrażenie-łańcuchowe) zmiana bieżącego skorowidza (katalogu) na skorowidz i (lub) napęd określony przez argument, P GetDir (liczba, łańcuch) uzyskanie informacji o bieżącym skorowidzu w określonym napędzie (argument liczba jest oznaczeniem napędu: 0 napęd bieżący, 1 napęd A, 2 napęd B itd.), PP-10(61 z 66)

62 Inne procedury standardowe związane z przetwarzaniem plików: P MkDir (wyrażenie-łańcuchowe) utworzenie nowego podskorowidza, P RmDir (wyrażenie-łańcuchowe) usunięcia pustego, tj. nie zawierającego żadnych zbiorów, podskorowidza, P Erase (zmienna-plikowa) usunięcie zewnętrznego zbioru danych skojarzonego z wyspecyfikowaną zmienną plikową (plik ten nie może być otwarty), PP-10(62 z 66)

63 Inne procedury standardowe związane z przetwarzaniem plików: P Rename (zmienna-plikowa, wyrażenie-łańcuchowe) zmiana nazwy zbioru dyskowego. Bezparametrowa funkcja IOResult podaje (w postaci liczby całkowitej) status ostatnio wykonywanej operacji wejścia-wyjścia, pod warunkiem, że nie jest aktywna systemowa kontrola warunków wejścia-wyjścia (wyłączenie uzyskuje się za pomocą dyrektywy kompilatora {$I!}). Jeśli podczas wykonywania operacji wejścia-wyjścia nie wystąpi żaden błąd, to wartością funkcji jest 0, a w przypadku PP-10(63 z 66) przeciwnym kod błędu.

64 Przykład Za pomocą następującej konstrukcji: AssignFile (identyfikator-pliku, zbiór-danych); {$I!} Append (identyfikator-pliku); {$I+} if IOResult<>0 then Rewrite (identyfikator-pliku); można otworzyć istniejący zbiór tekstowy z jednoczesnym jego ustawieniem na końcu lub utworzyć nowy zbiór o tej samej nazwie. Gdyby nie zastosowano dyrektywy kompilatora {$I!}, a zbioru nie odnaleziono by (np. wskutek jego braku lub błędnego określenia ścieżki dostępu do niego), to wywołanie procedury Append spowodowałoby wystąpienie błędu przerywającego wykonanie programu. PP-10(64 z 66)

65 Przykład W opisanej sytuacji można także użyć instrukcji try...except: AssignFile (identyfikator-pliku, zbiór-danych); try Append (identyfikator-pliku) except on warunek : EInOutError do ShowMessage ( Błąd wejścia-wyjścia. Kod błędu : +IntToStr(warunek.ErrorCode)) end; Rewrite (identyfikator-pliku); Identyfikator warunek (nie trzeba go deklarować) służy do oznaczenia obiektu-warunku w instrukcji po słowie do. Jego użycie jest o tyle konieczne, że można wówczas odwołać się do pola ErrorCode, które zawiera kod błędu (jest on równy wartości funkcjipp-10(65 z 66) IOResult).

66 PP-10(66 z 66)

Podręcznik użytkownika IBM SPSS Statistics 22 System podstawowy

Podręcznik użytkownika IBM SPSS Statistics 22 System podstawowy Podręcznik użytkownika IBM SPSS Statistics 22 System podstawowy Uwaga Przed skorzystaniem z niniejszych informacji oraz produktu, którego one dotyczą, należy zapoznać się z informacjami zamieszczonymi

Bardziej szczegółowo

Praca dyplomowa inżynierska

Praca dyplomowa inżynierska POLITECHNIKA WARSZAWSKA Rok akademicki: Wydział Elektroniki i Technik Informacyjnych 2003/2004 Instytut Automatyki i Informatyki Stosowanej Praca dyplomowa inżynierska Krzysztof Ślusarczyk Opracowanie,

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI PROGRAMU. INFOR System KSIĘGA PRZYCHODÓW I ROZCHODÓW. Nasza wiedza i narzędzia wspierają Twoją strategię. Wersja 9.

INSTRUKCJA OBSŁUGI PROGRAMU. INFOR System KSIĘGA PRZYCHODÓW I ROZCHODÓW. Nasza wiedza i narzędzia wspierają Twoją strategię. Wersja 9. INSTRUKCJA OBSŁUGI PROGRAMU INFOR System KSIĘGA PRZYCHODÓW I ROZCHODÓW Nasza wiedza i narzędzia wspierają Twoją strategię Wersja 9.0 www.biznesmen.com.pl pomoc@biznesmen.com.pl 1 Spis treści I.Wstęp...

Bardziej szczegółowo

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli.

Wszystkie znaki występujące w tekście są zastrzeżonymi znakami firmowymi bądź towarowymi ich właścicieli. Podręcznik dopuszczony do użytku szkolnego przez ministra właściwego do spraw oświaty i wychowania i wpisany do wykazu podręczników przeznaczonych do kształcenia ogólnego do nauczania informatyki na podstawie

Bardziej szczegółowo

Acronis i Acronis Secure Zone są zastrzeżonymi znakami towarowymi firmy Acronis, Inc.

Acronis i Acronis Secure Zone są zastrzeżonymi znakami towarowymi firmy Acronis, Inc. Copyright Acronis, Inc., 2000 2011. Wszelkie prawa zastrzeżone. Acronis i Acronis Secure Zone są zastrzeżonymi znakami towarowymi firmy Acronis, Inc. Acronis Compute with Confidence, Acronis Startup Recovery

Bardziej szczegółowo

POMOC DO PROGRAMU. Merco s.c. - Programy dla resturacji i hoteli www.merco.pl

POMOC DO PROGRAMU. Merco s.c. - Programy dla resturacji i hoteli www.merco.pl POMOC DO PROGRAMU Merco s.c. - Programy dla resturacji i hoteli www.merco.pl 2. Instalacja systemu 1. Spis treści 2. Instalacja systemu... 3 3. System - konfiguracja... 4 3.1. Parametry programu... 4 3.1.1.

Bardziej szczegółowo

Podręcznik użytkownika

Podręcznik użytkownika Podręcznik użytkownika 1 Streamsoft Podręcznik użytkownika programów z serii PCBIZNES (Ala, Ewa, Aga, Iza) jest stale aktualizowany. Najnowsze wersje podręcznika są dostępne na stronie internetowej produktu:

Bardziej szczegółowo

Lunar Program powiększający Wersja 7.0

Lunar Program powiększający Wersja 7.0 Lunar Program powiększający Wersja 7.0 dla Systemów Operacyjnych Microsoft Windows Copyright 1998-2006 Dolphin Oceanic Ltd. Technology House Blackpole Estate, West Worcester WR3 8TJ Wielka Brytania Tel:

Bardziej szczegółowo

ABBYY FineReader 11 Podręcznik użytkowanika

ABBYY FineReader 11 Podręcznik użytkowanika ABBYY FineReader 11 2011 ABBYY. Wszystkie prawa zastrzeżone. Informacje w tym dokumencie mogą się zmienić bez uprzedzenia i nie niosą żadnych zobowiązań po stronie ABBYY. Oprogramowanie opisane w tym dokumencie

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI PANELU ADMINISTRACYJNEGO SYSTEMU CMS

INSTRUKCJA OBSŁUGI PANELU ADMINISTRACYJNEGO SYSTEMU CMS INSTRUKCJA OBSŁUGI PANELU ADMINISTRACYJNEGO SYSTEMU CMS System CMS (Content Managment System) jest to aplikacja internetowa pozwalająca na łatwą aktualizację i rozbudowę strony internetowej. Osoba aktualizująca

Bardziej szczegółowo

LOGO!Soft Comfort pomoc online

LOGO!Soft Comfort pomoc online LOGO!Soft Comfort pomoc online Instrukcja obsługi LOGO!Soft Comfort V7.0 1 Interfejs użytkownika 2 Samouczek 3 Przykładowe aplikacje 4 Materiały referencyjne 5 Porady i podpowiedzi 6 Dane techniczne Wyznaczanie

Bardziej szczegółowo

Partition Manager 12 Home

Partition Manager 12 Home Paragon Software Poland Sp. z o.o ul. Śląska 22/21 42 217 Częstochowa, Polska Tel. +48 (34) 343 81 81 Internet: www.paragon software.pl Email: kontakt@paragon software.pl Partition Manager 12 Home Podręcznik

Bardziej szczegółowo

System plików warstwa fizyczna. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak

System plików warstwa fizyczna. Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak System plików warstwa fizyczna Wykład prowadzą: Jerzy Brzeziński Dariusz Wawrzyniak System plików warstwa fizyczna Celem wykładu jest prezentacja różnych podejść do implementacji systemu plików. Podejścia

Bardziej szczegółowo

URZĄDZENIA TECHNIKI KOMPUTEROWEJ CZĘŚĆ 1 JAK DZIAŁA KOMPUTER?

URZĄDZENIA TECHNIKI KOMPUTEROWEJ CZĘŚĆ 1 JAK DZIAŁA KOMPUTER? KRZYSZTOF WOJTUSZKIEWICZ URZĄDZENIA TECHNIKI KOMPUTEROWEJ CZĘŚĆ 1 JAK DZIAŁA KOMPUTER? Projekt okładki: Michał Rosiński Redakcja: Matylda Pawłowska Skład komputerowy: Krzysztof Świstak Książka przeznaczona

Bardziej szczegółowo

Wprowadzenie do programu

Wprowadzenie do programu Wprowadzenie do programu Wersja 4.2 www.geogebra.org Wprowadzenie do programu GeoGebra Data ostatniej modyfikacji: 6 Listopada, 2012. Aktualizacja dotyczy najnowszej wersji programu: GeoGebra 4.2. Podręcznik

Bardziej szczegółowo

Informatyczny System Zarządzania Budżetami Jednostek Samorządu Terytorialnego (BeSTi@)

Informatyczny System Zarządzania Budżetami Jednostek Samorządu Terytorialnego (BeSTi@) Informatyczny System Zarządzania Budżetami Jednostek Samorządu Terytorialnego (BeSTi@) System powstał w ramach projektu PHARE 2002/000-580.01.09 Zarządzanie Finansami Publicznymi Dokumentacja użytkownika

Bardziej szczegółowo

CA-10 Wersja programowa 5.11

CA-10 Wersja programowa 5.11 Centrala alarmowa CA-10 Wersja programowa 5.11 INSTRUKCJA INSTALATORA GDAŃSK ca10i_pl 05/09 OSTRZEŻENIA Ze względów bezpieczeństwa system alarmowy powinien być instalowany przez wykwalifikowanych specjalistów.

Bardziej szczegółowo

Różne reprezentacje mapy feromonowej w problemie plecakowym

Różne reprezentacje mapy feromonowej w problemie plecakowym Wydział Informatyki i Nauki o Materiałach Jarosław Dąbrowski 193207 Praca magisterska Różne reprezentacje mapy feromonowej w problemie plecakowym Promotor: dr inż. Mariusz Boryczka Sosnowiec, 2008 Spis

Bardziej szczegółowo

PCschematic ELautomation 11 - nowości. Spis treści

PCschematic ELautomation 11 - nowości. Spis treści Nowości w wersji 11 Spis treści Nowe menu...4 Menu Insert...4 Wstaw Stronę...4 Wstaw Projekt...4 Wstaw Chmurkę...4 Menu symboli...5 Zmiana nazwy symbolu...5 Generator symboli...5 Teksty...6 Wyrównanie

Bardziej szczegółowo

Instrukcja programu http://icsklep.intercars.com.pl

Instrukcja programu http://icsklep.intercars.com.pl Instrukcja programu http://icsklep.intercars.com.pl Spis treści: 1. Informacje 1.1 O programie 1.2 Zalety programu 1.3 Wymagania sprzętowe 1.4 Cennik 1.5 Wersja demonstracyjna 2. Instalacja 2.1 Z Internetu

Bardziej szczegółowo

Kup książkę Poleć książkę Oceń książkę. Księgarnia internetowa Lubię to!» Nasza społeczność

Kup książkę Poleć książkę Oceń książkę. Księgarnia internetowa Lubię to!» Nasza społeczność Tytuł oryginału: Learning Web Design: A Beginner s Guide to HTML, CSS, JavaScript, and Web Graphics Tłumaczenie: Aleksander Lamża (wstęp, rozdz. 1 11), Wojciech Moch (rozdz. 12 22, dodatki), z wykorzystaniem

Bardziej szczegółowo

PODRĘCZNIK UŻYTKOWNIKA PROGRAMU MINI MONITORING wersja 2.2.0.2

PODRĘCZNIK UŻYTKOWNIKA PROGRAMU MINI MONITORING wersja 2.2.0.2 PODRĘCZNIK UŻYTKOWNIKA PROGRAMU MINI MONITORING wersja 2.2.0.2 Spis treści: O PROGRAMIE...2 INSTALACJA...2 PIERWSZE URUCHOMIENIE PROGRAMU...6 USTAWIANIE OPCJI PROGRAMU...6 Zakładka USTAWIENIA PROGRAMU...6

Bardziej szczegółowo

OSTRZEŻENIE!!! PAMIĘTAJ, ŻE: UWAGA

OSTRZEŻENIE!!! PAMIĘTAJ, ŻE: UWAGA OSTRZEŻENIE!!! Odbiorniki kablowe Ferguson umożliwiają nagrywanie na zewnętrznych dyskach twardych HDD oraz pamięciach flash (pendrive). Jakkolwiek prawidłowe działanie nagrywania uzależnione jest od rodzaju

Bardziej szczegółowo

5.1. Definicja i klasyfikacja systemów pomiarowych

5.1. Definicja i klasyfikacja systemów pomiarowych 5. SYSTEMY POMIAROWE 5.1. Definicja i klasyfikacja systemów pomiarowych System pomiarowy jest definiowany jako zbiór jednostek funkcjonalnych tworzących całość organizacyjną, objętych wspólnym sterowaniem

Bardziej szczegółowo

Jak zaprojektować i uruchomić prostą stronę internetową?

Jak zaprojektować i uruchomić prostą stronę internetową? Przemysław Marcinkowski Jak zaprojektować i uruchomić prostą stronę internetową? Na przykładzie platformy WordPress Fundacja Wspomagania Wsi 2014 Jak zaprojektować i uruchomić prostą stronę internetową?

Bardziej szczegółowo

Synology NAS Przewodnik użytkownika

Synology NAS Przewodnik użytkownika Synology NAS Przewodnik użytkownika ID dokumentu Syno_UsersGuide_NAS_20130906 Spis treści Rozdział 1: Wprowadzenie Rozdział 2: Synology DiskStation Manager pierwsze kroki Instalacja serwera Synology NAS

Bardziej szczegółowo

Reprezentacja dokumentów tekstowych w modelu przestrzeni wektorowej

Reprezentacja dokumentów tekstowych w modelu przestrzeni wektorowej POLITECHNIKA WARSZAWSKA WYDZIAŁ ELEKTRONIKI I TECHNIK INFORMACYJNYCH INSTYTUT INFORMATYKI Rok akademicki 2004/2005 PRACA DYPLOMOWA MAGISTERSKA Michał Kosmulski Reprezentacja dokumentów tekstowych w modelu

Bardziej szczegółowo

Czas wirtualny, złożoność algorytmów

Czas wirtualny, złożoność algorytmów Czas wirtualny, złożoność algorytmów Plan wykładu Celem wykładu jest zaznajomienie studenta z pojęciem zegara logicznego, scharakteryzowanie różnych rodzajów kanałów komunikacyjnych, a także przedstawienie

Bardziej szczegółowo

USOS: System raportowania i analiz statystycznych

USOS: System raportowania i analiz statystycznych Uniwersytet Warszawski Wydział Matematyki, Informatyki i Mechaniki Filip Grotkowski Nr albumu: 235984 USOS: System raportowania i analiz statystycznych Praca magisterska na kierunku INFORMATYKA Praca wykonana

Bardziej szczegółowo

INSTRUKCJA OBSŁUGI PROGRAMU BECKER Content Manager

INSTRUKCJA OBSŁUGI PROGRAMU BECKER Content Manager INSTRUKCJA OBSŁUGI PROGRAMU BECKER Content Manager Instrukcja zawiera informacje o sposobie przeglądania, kupowania, pobierania i instalowania aktualizacji oraz dodatkowych zawartości w urządzeniu nawigacyjnym

Bardziej szczegółowo