Automatyzacja pracy w AutoCADvistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-podstawy.pdf · w AutoCAD....

46
1 Automatyzacja pracy w AutoCAD

Transcript of Automatyzacja pracy w AutoCADvistula.wis.pk.edu.pl/~qmq/AutoCAD_VBA/VBA-podstawy.pdf · w AutoCAD....

1

Automatyzacja pracy w AutoCAD

2

Informacje wstępneBASIC (Beginners All-Purpose Symbolic Instruction Code)

Rok powstania: 1963 r.

Cel realizacji:nauczanie studentów programowania

umożliwienie programowania osobom nie zajmującym się programowaniem profesjonalnie

3

Informacje wstępne

VB (Visual Basic)

Rok powstania: 1991 r.

Cel realizacji:przystosowanie języka BASIC do programowania w środowisku wizualnym

umożliwienie łatwego tworzenia aplikacji dla środowiska Windows przez osoby nie zajmujące się profesjonalnym programowaniem

4

Informacje wstępne

VBA (Visual Basic for Applications)interpreter języka Visual Basic dołączony pierwotnie do aplikacji Microsoft Office

później również inne firmy komputerowe skorzystały z tego rozwiązania w swoich aplikacjach

Cel realizacji:samodzielne rozszerzania przez użytkownika funkcji aplikacji

łatwa automatyzacja pracy w danej aplikacji

5

Informacje wstępne

VB.NET (VisualBasic.NET)adaptacja języka Visual Basic do platformy .NET

ma funkcjonalność platformy .NET

Cel realizacji (platformy .NET):dostarczenie dla aplikacji standardowej funkcjonalności, niezależnej od wyboru języka kodu

zapewnienie przenośności między różnymi procesorami oraz wykorzystanie wszystkich możliwości procesora

zapewnienie przenośności między wersjami systemu

6

Ścieżki programowania

Algorytm

Kod źródłowy

Program w kodzie maszynowym

Interpreter

Kompilator

Krok I Ścieżka kompilacji(VB.NET)

Ścieżka interpretacji

(VBA)

Rozkazy do procesora

7

Podstawy języka VBA/VB.NET

czyli po prostu

Basic

8

Uwagi co do notacji koduSłowa Kluczowe Języka Basic

słowa zastrzeżone, najczęściej oznaczają rozkaz, instrukcję lub oznaczenie typu danych

pozostałe fragmenty kodu

słowa niezastrzeżone, najczęściej nazwy stałych, zmiennych lub elementów strukturalnych (procedur, funkcji)

[w nawiasach kwadratowych]

opcjonalne fragmenty kodujeśli występują, to bez nawiasów!

{w nawiasach klamrowych}

alternatywne fragmenty kodu

przedzielane są znakiem alternatywy |, np. Option Base {0|1}

oczywiście w kodzie jedno z alternatywy, już bez {}

9

Struktura koduModuł

oddzielny funkcjonalnie fragment kodu programu zawierający własne deklaracje stałych, zmiennych, procedur i funkcji (również często typów wartości i klas)

Procedura zbiór instrukcji wykonywanych w całości poprzez jedno wywołanie

Funkcja procedura zwracająca wartość (jak zmienna, rezerwuje pamięć na jej przechowanie)

Instrukcja pojedyncza linia procedury lub funkcjiw języku Basic możliwe jest umieszczenie w linii kilku instrukcji (zazwyczaj prostych) oddzielonych :

10

Struktura modułuTrzy rodzaje modułów:

moduł klasy – zawiera definicję klasy, czyli szablonu obiektu; wszystkie procedury w nim zapisane są metodami obiektów tej klasymoduł formularza – zawiera kod formularza, czyli okna dialogowego; służy do projektowania własnych formularzymoduł kodu źródłowego – zawiera właściwy kod programu lub inne funkcje i procedury nie będące metodami (można np. cały zbiór takich funkcji i procedur zdefiniować w osobnym module)

Struktura: oprócz deklaracji procedur i funkcji moduł może na początku zawierać w pierwszych liniach deklaracje opcjiOption ExplicitOption Base 1a w kolejnych deklaracje zmiennych

11

ProceduryZalety stosowania procedur: Zalety stosowania procedur:

możliwość wielokrotnego użycia tego samego fragmentu kodu

większa przejrzystość koduDeklaracja procedury:

[Public|Private|Friend] Sub nazwa_proc([lista argumentów])deklaracje zmiennych lokalnych (jeśli są)kod procedury[Exit Sub]kod procedury

End Sub

W najprostszej postaci:Sub nazwa_proc()

kod proceduryEnd Sub

Wywołanie procedury:nazwa_proc [wart_arg1, wart_arg2, ...]

lubCall nazwa_proc[(wart_arg1, wart_arg2, ...)]

12

FunkcjeW odróżnieniu od procedur zwracają wartość.W odróżnieniu od procedur zwracają wartość.Deklaracja funkcji:[Public|Private|Friend] Function nazw_fun([lista argumentów])As typ

deklaracje zmiennych lokalnych (jeśli są)kod funkcjinazw_fun = wyrażeniekod funkcji[Exit Function]kod funkcjiEnd Function

W najprostszej postaci:Function nazw_fun()

kod funkcjinazw_fun = wyrażeniekod funkcji

End Function

Wywołanie funkcji:nazwa_zmiennej = nazw_fun[(wart_arg1, wart_arg2, ...)]

13

Zmienne

Zmienna:miejsca w pamięci (identyfikowane nazwą), w którym przechowywana jest wartość określonego typu

przechowywana wartość może się zmieniać w trakcie działania programu.

Nazwa zmiennej: musi być unikatowa w obrębie swojego zakresu (wielkość liter nie ma znaczenia)może zawierać do 255 znaków nie może zawierać znaku deklarującego typ (%, &, !, #, @, $) oraz spacji, przecinka i kropkimusi zaczynać się od litery nie może być słowem kluczowym

14

Deklaracje zmiennych

Deklaracja zmiennejmiejsce i fakt deklaracji ustala w danym zakresie nazwę i typ zmiennejwywołanie zmiennej niezadeklarowanej ustala jedynie zakres jej nazwy, a jej typem jest wtedy domyślnie Variantw języku Basic deklaracja zmiennej nie jest obowiązkowa, ale zalecana, głównie ze względu na oszczędność pamięci

Deklarację zmiennych można wymusić w obrębie modułu opcją:składnia opcji: Option Explicit

15

Deklaracje zmiennych

Składnia deklaracji zmiennych: Dim nazwa_zmiennej As typ

Deklaracja skrócona

przy użyciu znaku deklaracji typu po nazwie zmiennej:% Integer& Long! Single# Double@ Currency$ String

przykład: Dim nazwa$

16

Zmienne tablicoweZmienne tablicowe są uporządkowanym zbiorem wartości tego Zmienne tablicowe są uporządkowanym zbiorem wartości tego samego typu samego typu

Elementy tablicy są zmiennymi tego samego typuElementy tablicy są zmiennymi tego samego typu

Dostęp do elementów tablicy jest możliwy poprzez Dostęp do elementów tablicy jest możliwy poprzez indeksowanie, czyli podanie położenia elementu w tablicyindeksowanie, czyli podanie położenia elementu w tablicy

Każdy element tablicy ma swój unikalny zestaw indeksówKażdy element tablicy ma swój unikalny zestaw indeksów

Tablice mogą mieć do 60 wymiarów Tablice mogą mieć do 60 wymiarów

Deklaracja zmiennej tablicowej rezerwuje w pamięci miejsce Deklaracja zmiennej tablicowej rezerwuje w pamięci miejsce dla wszystkich jej elementów.dla wszystkich jej elementów.

17

Deklaracja zmiennych tablicowychDeklaracja w najprostszej formie:Deklaracja w najprostszej formie:

Dim nazwa_tab(indeks_górny) As typ_zm

tu indeks dolny tablicy wynosi 0 lub 1 (jeśli tak zadeklarowaliśmy w Option Base).

Deklaracja z podaniem indeksu dolnego:Deklaracja z podaniem indeksu dolnego:Dim nazwa_tab(ind_dolny To ind_górny) As typ_zm

Dla tablic wielowymiarowych (do 60 wymiarów), kolejne Dla tablic wielowymiarowych (do 60 wymiarów), kolejne indeksowania oddzielamy przecinkamiindeksowania oddzielamy przecinkami

Tablice wypełniamy wartościami odwołując się do ich Tablice wypełniamy wartościami odwołując się do ich elementów poprzez indeksowanie.elementów poprzez indeksowanie.

Czyszczenie zawartości tablicy: Czyszczenie zawartości tablicy: Erase(nazwa_tab)nazwa_tab)

18

Deklaracja zmiennych tablicowych dynamicznych

Deklarację zmiennych tablicowych dynamicznych stosuje się aby uniknąć Deklarację zmiennych tablicowych dynamicznych stosuje się aby uniknąć wstępnej rezerwacji pamięciwstępnej rezerwacji pamięci

deklaruje się je bez podania wymiarów:

Dim nazwa_tab() As typ_zm

rozmiar tablicy trzeba podać przed pierwszym indeksowaniem:

ReDim nazwa_tab(indeksy)

czynność tę można wykonać wiele razy, ale niszczy ona za każdym razem zawartość tablicy

zachowanie zawartości tablicy należy zadeklarować:

ReDim Preserve nazwa_tab(indeksy)

w tym wypadku można zmieniać tylko górny indeks ostatniego wymiaru

funkcja Erase zwalnia pamięć zajmowaną przez tablicę dynamiczną

19

Stałe

Stała:tak jak zmienna, jest to miejsce w pamięci (identyfikowane nazwą), w którym przechowywana jest wartość określonego typu

w odróżnieniu do zmiennej, przechowywana wartość nie może się zmieniać w trakcie działania programu

reguły nadawania nazw są takie same jak dla zmiennych

Deklaracje stałych: Const nazwa_stalej = wartość_stałej As typ Const As typ nazwa_stalej = wartość_stalej

 Const nazwa_stalej As typ = wartość_stalej

20

Widoczność zmiennych, stałych, procedur i funkcji

Jest oJest określana za pomocą słów kluczowych:kreślana za pomocą słów kluczowych:[Public|Private|Friend]

Trzy poziomy zasięgu: Trzy poziomy zasięgu:

poziom Public – obiekt jest widoczny na wszystkich poziomach aplikacji

poziom Private – obiekt jest widoczny jedynie w obrębie poziomu deklaracji

poziom Friend – obiekt jest widoczny na wszystkich poziomach AcadDocument, ale nie w innych dokumentach aplikacji

21

Czas życia zmiennych

Zmienna lokalna jest niszczona (zwalniana jest jej pamięć) Zmienna lokalna jest niszczona (zwalniana jest jej pamięć) automatycznie po wyjściu sterowania poza zasięg jej automatycznie po wyjściu sterowania poza zasięg jej widoczności (wyjściu z procedury) widoczności (wyjściu z procedury)

Aby ich wartości pozostały po ustaniu wykonywania procedury, Aby ich wartości pozostały po ustaniu wykonywania procedury, trzeba zadeklarować je jako trzeba zadeklarować je jako Static

Użycie słowa kluczowego Użycie słowa kluczowego Static przed nazwą procedury przed nazwą procedury zachowuje wszystkie zmienne po jej opuszczeniu.zachowuje wszystkie zmienne po jej opuszczeniu.

22

Typy danychLiczby całkowite:Liczby całkowite:    Byte - 1 bajt; wartości od 0 do 255 - 1 bajt; wartości od 0 do 255    Integer - 2 bajty; od -32768 do 32767 - 2 bajty; od -32768 do 32767    Long - 4 bajty; od ok. -20 mld do ok. 20 mld - 4 bajty; od ok. -20 mld do ok. 20 mld    Decimal - 14 bajtów; do 28 cyfr z przecinkiem - 14 bajtów; do 28 cyfr z przecinkiem

Liczby „rzeczywiste” (właściwie zmiennoprzecinkowe):Liczby „rzeczywiste” (właściwie zmiennoprzecinkowe):    Single - 4 bajty; od ok. -3.4e38 do ok. 1.4e45 - 4 bajty; od ok. -3.4e38 do ok. 1.4e45    Double - 8 bajtów; rzędu +/-1.8e308 - 8 bajtów; rzędu +/-1.8e308 Currency - 8 bajtów; +/-9.2e14 (+4 miejsca po przecinku) - 8 bajtów; +/-9.2e14 (+4 miejsca po przecinku)

Wartości logiczne:Wartości logiczne:    Boolean - True/False

Daty:Daty:    Date - od 1/1/100 do 31/12/9999 - od 1/1/100 do 31/12/9999

Łańcuchy znakowe:Łańcuchy znakowe:    String (ustalonej długości) - od 0 do 65535 znaków (ustalonej długości) - od 0 do 65535 znaków    String (zmiennej długości) - od 0 do ok. 2 mld znaków (zmiennej długości) - od 0 do ok. 2 mld znaków

23

Łańcuchy znakowe

Dowolne znaki ujęte w cudzysłowach Pusty łańcuch (o długości 0): ""

Deklaracja zmiennej łańcuchowej o stałej długościDim nazwisko As String * 30

Deklaracja zmiennej łańcuchowej o zmiennej długościDim nazwisko As String

Łańcuchy znakowe łączy się operatorem &

Łańcuch może zawierać znaki sterujące, takie jak:  vbNewLine – znak nowego wiersza  vbTab – tabulator

24

Instrukcje

Instrukcje przypisania zmiennej wartościInstrukcje przypisania zmiennej wartościinnej zmiennej:

nazwa_zm = nazwa_innej_zm

funkcji:

nazwa_zm = nazwa_fun(argumenty)

wyrażenia:

nazwa_zm = wyrażenie

Zmiennej tablicowej przypisujemy wartości odwołując się do Zmiennej tablicowej przypisujemy wartości odwołując się do jej elementów za pomocą indeksowania jej elementów za pomocą indeksowania

nazwa_tab(indeksy) = wyrażenie

25

Instrukcje warunkowe

Służą do sterowania wykonywaniem instrukcji w zależności od Służą do sterowania wykonywaniem instrukcji w zależności od spełnienia warunków zapisanych w postaci wyrażeń spełnienia warunków zapisanych w postaci wyrażeń warunkowychwarunkowych

Wyrażenia warunkowe przyjmują wartości logiczne (Wyrażenia warunkowe przyjmują wartości logiczne (booleanboolean):):prawdy (True)

fałszu (False)

Wyrażenia warunkowe tworzy się przy użyciu Wyrażenia warunkowe tworzy się przy użyciu operatorów porównania i operatorów logicznychoperatorów porównania i operatorów logicznych

26

Operatory porównania i logiczne

Operatory porównania Operatory porównania

= równości, <> nierówności, > większości,

< mniejszości, >= niemniejszości,

<= niewiększości

Is tożsamości

Like podobieństwa

Operatory logiczne Operatory logiczne

AND koniunkcji

OR alternatywy

27

Instrukcja warunkowa If

If warunek Then instrukcja

lub dla kilku krótkich instrukcji:

If warunek Then instrukcja1 : instrukcja2 : ...

lub w postaci blokowej:

If warunek Then

blok instrukcji

End If

Instrukcje są wykonywane tylko wtedy, gdy warunek jest

spełniony.

28

Instrukcja warunkowa If … Else

If warunek Then instrukcja1 Else instrukcja2

Można użyć kilku krótkich instrukcji w jednej linii oddzielając

je dwukropkami – analogicznie jak na poprzednim slajdzie.

Postać blokowa:

If warunek Then

blok instrukcji1

Else

blok instrukcji2

End If

Instrukcje po Then są wykonywane, gdy warunek jest

spełniony; po Else, gdy warunek nie jest spełniony.

29

Instrukcja If … ElseIfStosowana jest przy zagnieżdżeniu warunków:

If warunek1 Then

blok instrukcji1

ElseIf warunek2 Then

blok instrukcji2

[ElseIf warunek_n Then

blok instrukcji_n]

[Else

blok instrukcji_pozost]

End If

Warunki sprawdzane są po kolei i wykonywany jest tylko jeden blok instrukcji.

30

Instrukcja Select CaseW tym wypadku sprawdzane jest, czy W tym wypadku sprawdzane jest, czy wyrażenie przyjmuje przyjmuje podane wartościpodane wartości

Select Case wyrażenie Case wartość1 blok instrukcji1 [Case wartość_n blok instrukcji_n] ... [Case Else blok instrukcji_else]End Select

W przypadku, gdy jakiś blok_instrukcji wykonywany jest dla kilku wartości, używa się konstrukcji:Case wartość1, wartość2, ...

31

Instrukcja Select Case IsW przypadku, kiedy nie chodzi o równość W przypadku, kiedy nie chodzi o równość wyrażenie = wartość, ale o inną relację, wtedy używana , ale o inną relację, wtedy używana jest konstrukcja:jest konstrukcja:

Select Case wyrażenie Case Is relacja1 blok instrukcji1 ... End Select

Tego typu konstrukcja może występować razem ze zwykłymi wyrażeniami typu Select Case

32

Instrukcja Select Case…To…W przypadku, kiedy chodzi o zakres pomiędzy dwiema W przypadku, kiedy chodzi o zakres pomiędzy dwiema wartościami, używana jest konstrukcja:wartościami, używana jest konstrukcja:

Select Case wyrażenie Case wartość1 To wartość2 blok instrukcji ... End Select

Tego typu konstrukcja również może występować razem ze zwykłymi wyrażeniami typu Select Case

33

PętleSą to wyrażenia strukturalne pozwalające wykonywać blok Są to wyrażenia strukturalne pozwalające wykonywać blok instrukcji (instrukcję) wielokrotnie.instrukcji (instrukcję) wielokrotnie.

Konieczne jest podanie warunek zakończenia wykonywania Konieczne jest podanie warunek zakończenia wykonywania instrukcji (warunku wyjścia z pętli).instrukcji (warunku wyjścia z pętli).

W przypadku błędnej definicji warunku wyjścia może dojść do W przypadku błędnej definicji warunku wyjścia może dojść do sytuacji, kiedy pętla będzie wykonywana bez możliwości jej sytuacji, kiedy pętla będzie wykonywana bez możliwości jej zakończenia.zakończenia.Pętlę taką można przerwać kombinacją klawiszy Pętlę taką można przerwać kombinacją klawiszy Ctrl+BreakCtrl+Break

34

Pętla DoDo

If warunek Then Exit Do

blok_instrukcji

Loop

Wykonywanie instrukcji pętli kończy się, gdy podczas sprawdzania warunek jego wartość jest równa True

35

Pętla Do UntilDo Until warunek

blok_instrukcji

Loop

Instrukcje w bloku są wykonywane, dopóki warunek nie uzyska wartości True

Jeśli przed pierwszym wykonaniem pętli warunek będzie miał wartość True, instrukcje nigdy nie zostaną wykonane

Warunek jest sprawdzany przed każdym wykonaniem instrukcji

36

Pętla Do WhileDo While warunek blok_instrukcji Loop

Instrukcje w bloku są wykonywane tak długo, jak długo warunek ma wartość True

Jeśli przed pierwszym wykonaniem pętli warunek ma wartość

False, instrukcje nie będą wykonane

Warunek jest sprawdzany przed każdym wykonaniem instrukcji

37

Pętla Do…Loop Until

Do blok_instrukcji Loop Until warunek

Instrukcje w bloku są wykonywane, dopóki warunek nie

uzyska wartości True

Bez względu na wartość początkową warunku pierwszy przebieg pętli będzie wykonanyWarunek jest sprawdzany po każdym wykonaniu instrukcji

38

Pętla Do…Loop While

Do blok_instrukcji Loop While warunek

Instrukcje w bloku są wykonywane, jak długo warunek ma

wartość True

Bez względu na wartość początkową warunku pierwszy przebieg pętli będzie wykonanyWarunek jest sprawdzany po każdym wykonaniu instrukcji

39

Pętla While WendWhile While warunekwarunek

blok_instrukcjiWendWend

Instrukcje są wykonywane o ile Instrukcje są wykonywane o ile warunekwarunek ma wartość ma wartość TrueTrue

Jeśli na początku Jeśli na początku warunekwarunek ma wartość ma wartość FalseFalse, instrukcje nie , instrukcje nie są wykonywane są wykonywane

Warunek jest sprawdzany przed każdym wykonaniem instrukcji Warunek jest sprawdzany przed każdym wykonaniem instrukcji

40

Pętla ForFor For liczniklicznik = = wart_poczwart_pocz To To wart_konc wart_konc [[Step Step krokkrok]] blok_instrukcjiNext Next liczniklicznik

Pętla wykonywana jest określoną liczbę razy dla Pętla wykonywana jest określoną liczbę razy dla licznikalicznika narastającego po każdym przebiegu pętli co narastającego po każdym przebiegu pętli co krokkrok od od wart_poczwart_pocz do do wart_koncwart_konc

Człon Człon Step Step krokkrok występuje w kodzie, gdy wartość występuje w kodzie, gdy wartość krokkrok różni różni się od 1 (wartość ta może być ujemna).się od 1 (wartość ta może być ujemna).

Pętla kończy się, kiedy licznik przekroczy Pętla kończy się, kiedy licznik przekroczy wart_koncwart_konc

41

Pętla For EachFor Each element In kolekcja

blok_instrukcji

Next element

Pętla wykonywana jest tyle razy, jaka jest liczność kolekcjiInstrukcje są wykonywane dla każdego elementu kolekcji

42

Obsługa plikówAby na pliku wykonać jakąś operację (odczyt, zapis), należy Aby na pliku wykonać jakąś operację (odczyt, zapis), należy wykonać następujące czynności:wykonać następujące czynności:

1. Otworzyć plik z deklaracją w jakim celu.

2. Dokonać na nim operacji odczytu lub zapisu.

3. Zamknąć plik.

43

Otwarcie plikuSkładnia:Składnia:

Open ścieżka For tryb As [#]NrPliku

Parametr Parametr ścieżka, to ścieżka dostępu do pliku w systemie. , to ścieżka dostępu do pliku w systemie. Podajemy ją w postaci łańcucha znakowego (w cudzysłowach Podajemy ją w postaci łańcucha znakowego (w cudzysłowach " ") lub w postaci zmiennej łańcuchowej przechowującej " ") lub w postaci zmiennej łańcuchowej przechowującej wartość tego łańcucha.wartość tego łańcucha.

Parametr Parametr tryb, to cel otwarcia pliku: , to cel otwarcia pliku: Input – do odczytu, – do odczytu, Output – do zapisu (niszczy zawartość pliku), – do zapisu (niszczy zawartość pliku), Append – do – do dopisania na końcu pliku. Te trzy tryby używane są do plików dopisania na końcu pliku. Te trzy tryby używane są do plików tekstowych, pozostałe to: tekstowych, pozostałe to: Binary i i Random..

NrPliku, to pierwszy dostępny (nie zajęty!) numer w zakresie , to pierwszy dostępny (nie zajęty!) numer w zakresie 1–511.1–511.

44

Odczyt z plikuSkładnia:Składnia:

Input [#]NrPliku, Lista zmiennych

Kolejne wartości w pliku muszą odpowiadać sekwencyjnie Kolejne wartości w pliku muszą odpowiadać sekwencyjnie typom zmiennych z podanej listy.typom zmiennych z podanej listy.

Składnia:Składnia:LineInput [#]NrPliku, Zm_łańcuchowa

Do zmiennej zwracana jest wartość całej linii (do znaku Do zmiennej zwracana jest wartość całej linii (do znaku powrotu karetki Chr(13) lub sekwencji znaków powrotu karetki powrotu karetki Chr(13) lub sekwencji znaków powrotu karetki i końca linii iChr(13)+Chr(10)) w postaci łańcucha znakowego.i końca linii iChr(13)+Chr(10)) w postaci łańcucha znakowego.

45

Zapis do plikuSkładnia:Składnia:

Write [#]NrPliku[, Lista wartości]

Pominięcie listy wartości powoduje zapisanie pustej linii. Pominięcie listy wartości powoduje zapisanie pustej linii. Wartości w pliku oddzielane są przecinkami, a łańcuchy Wartości w pliku oddzielane są przecinkami, a łańcuchy znakowe wpisywane w cudzysłowach. Na końcu każdej listy znakowe wpisywane w cudzysłowach. Na końcu każdej listy wartości wstawiany jest znak końca linii. Lista wartości może wartości wstawiany jest znak końca linii. Lista wartości może być podana bezpośrednio, albo za pośrednictwem zmiennych.być podana bezpośrednio, albo za pośrednictwem zmiennych.

Składnia:Składnia:Print [#]NrPliku[, Lista wyrażeń]

W tym wypadku dostępne są większe możliwości sterowania W tym wypadku dostępne są większe możliwości sterowania sposobem zapisu (wstawianie spacji, tabulatorów, ustawianie sposobem zapisu (wstawianie spacji, tabulatorów, ustawianie miejsca wpisu w linii, itd.).miejsca wpisu w linii, itd.).

46

Zamknięcie plikuSkładnia:Składnia:

Close [Lista NrPlików]

Pominięcie listy numerów powoduje zamknięcie wszystkich Pominięcie listy numerów powoduje zamknięcie wszystkich wskaźników do pliku.wskaźników do pliku.