Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Робота з папками та дисками

Масиви

Loop Until

Do

Loop While

Do

Loop

Do Until

Loop

< умова >

< Оператори >

< Оператори >

< умова >

< Оператори >

< умова >

Варіант 1. Використання умови типу While (продовження циклу).

Оператори циклу виконуються будь-яку кількість разів, поки значенням умови

є істина (True). Якщо при першій перевірці умови вона виявляється помилко-

вою (False), то оператори тіла циклу не виконуються жодного разу.

Варіант 2. Використання умови типу Until (завершення циклу). Опе-

ратори циклу виконуються, якщо значення умовного виразу дорівнює False

(хибність). В іншому випадку цикл завершується.

Варіанти 3 та 4. Для цих варіантів характерним є те, що спочатку виконуються оператори тіла циклу, а потім перевіряється умова. Така конструкція

гарантує, що оператори тіла циклу виконуються принаймні один раз незалежно

від того, чи виконується умова.

1.4 Оператори безумовної передачі керування

1.4.1 Оператор безумовного переходу Goto:

GOTO <позначка>

Здійснює безумовний перехід до зазначеного рядка, де позначка – ідентифі-

катор рядка – може розміщуватися в окремому рядку й містити яку-завгодно

кількість літер та цифр. Після позначки ставиться двокрапка. Наприклад:

aaa: x=x+1

...

GOTO aaa

1.4.2 Оператор виходу зі структурного блоку Exit:

EXIT <назва блока>

Організовує передчасний вихід із структурних блоків операторів керуючої

структури, із циклів і навіть із процедур. Так оператори Ехit For й Exit Do

застосовують при необхідності негайного завершення відповідних циклів. Опе-

ратор Exit For часто використовують разом із перевіркою певної умови (напри-

клад If...Then). Цей оператор передає керування операторові, який слідує за

Next.

 

Лекція 22. Масиви в Visual Basic.

 

1. Статичні масиви

a. Одновимірні масиви

b. Багатовимірні масиви

2. Динамічні масиви

3. Присвоювання масивів

Масив — це набір елементів певного типу, кожний з яких має свій порядковий номер, званий індексом. Розрізняють статичні і динамічні масиви. Межі статичного масиву встановлюються на етапі розробки і можуть змінюватися тільки в новій версії про­грами. Динамічні масиви змінюють свої межі в ході виконання програми. З їх допомогою можна динамічно задавати розмір масиву відповідно до конкретних умов. Проте слід врахувати, що робота з динамічними масивами вимагає додаткових витрат на програмування.

 

Статичні масиви

Одновимірні масиви

Для оголошення масиву використовується оператор Dim з вка­занням в круглих дужках після імені масиву його максималь­ного

індексу: Dim aName(150) As String

В цьому випадку елементи змінної aName розрізняють не на ім'я, а по індексу:

aName(4)= "Іванов"

Print aName(7)

Область визначення

Час життя та область визначення змінних, відноситься переважно і до масивів. Проте статичні масиви

не можна визначити локально всередині процедури, а тільки глобально або для контейнера:

[Static | Public I Dim] Ім'я змінної (Верхня_межа)

Індексація

В Visual Basic індексація елементів масивів завжди починається з нуля, тобто індекс 0 позначає перший елемент масиву, індекс 1 — другий I і т.д.

Оператор Option Base дозволяє задати індексацію масиву з 1:

' (General) (Declarations)

Option Base 1

Цей оператор повинен знаходитися в секції (General) (Declarations) контейнера (форми, модуля, класу).

Допустимими значеннями для Option Base є тільки 0 і 1. Цей оператор використовується для того, щоб забезпечити сумісність Visual Basic з іншими діалектами Basic, індек­сація в яких починається з 1.

Для установки інших меж масиву необхідне використовувати наступний синтаксис:

[Static I Public I Dim] Ім'я змінної ([Нижн_межа То] Верхн_межа)

Вказівкою верхньої і нижньої меж можна задати будь-які діапазони індексу. Це зручно, якщо індекс несе також смислове навантаження (дата, номер замовлення, вік і т.п.):

(General) (Declarations)

Dim aBirthDate (1980 To 2050)

Багатовимірні масиви

Visual Basic дозволяє також створювати багатовимірні масиви.

При оголошенні багатовимірного масиву верхні межі кожної розмірності розділяються комами:

' (General) (Declarations)

Dim aName (10, 25) As String

Масив з ім'ям aName може містити 286 різних значень (11*26=286).

Private Sub Command1_Click()

aName (1, 3) = "X" End Sub

Розмірність масиву може бути і більше.

 

Динамічні масиви

Іноді при оголошенні масиву його розмір не відомий. В цьому випадку слід оголошувати динамічний масив, який дозволяє змінювати його розмір або розмірність під час виконання програми. Динамічний масив створюється в два етапи. Спочатку масив визначають в секції (General) (Declarations) контейнера (форми, модуля, класу) без вказівки розміру:

' (General) (Declarations)

Dim aArray() As Variant

Потім за допомогою оператора ReDim встановлюють факти­чний розмір масиву:

(General) (Declarations)

Dim aArray () As Variant

Private Sub Commandl__Click ()

ReDim aArray (50, 10)

Код

End Sub

Синтаксис оператора ReDim:

ReDim [Preserve] Ім'я змінної (Межі) [As Тип_даних]

На відміну від звичайного Dim, оператор ReDim використовується тільки в процедурах. При цьому тип даних вказувати не обов'язково, особливо якщо він вже визначений оператором Dim. можна використовувати оператор ReDim для зміни числа елементів або розмірності масиву. Проте не можна оголосити масив з даними одного типу, а потім використати ReDim для приведення масиву до іншого типу, за виключенням випадку якщо масив містить змінні типу Variant. В цьому випадку приведення масиву до явного типу даних допус­тимо.

Таким чином, розмірність масиву можна при необхідності змінити. Але тоді виникає небезпека втрати його вмістимого, оскільки після зміни розмірності елементам масиву присвоюється значення за замовчуванням. Проте Visual Basic надає можливість змінювати розмірність мас­иву без втрати вмісту. Для цього слід використовувати ReDim разом з ключовим словом Preserve:

(General)(Declaration)

Dim aArray () As Variant

Private Sub Commandl_Click()

ReDim Preserve aArray (50, 15)

Код

End Sub

Використання з оператором ReDim зарезервованого сло­ва Preserve дозволяє зберегти вміст масиву при зміні його розміру або розмірності. Але слід враховувати, що для багатовимірних масивів можна змінювати тільки останнє вимірювання:

' (General) (Declarations)

Dim aArray () As Variant

Private Sub Commandl_Click()

ReDim aArray (10, 10)

ReDim Preserve aArray (10, 15) 'діє

ReDim Preserve aArray (15, 15) 'помилка

End Sub

При зміні розмірності можна також змінювати верхню і нижню межі індексу. Але якщо при цьому використовується ключове слово Preserve, то дозволено змінювати тільки верхню межу:

' (General) (Declarations)

Dim aArray () As Variant Private Sub Commandl_Click()

ReDim aArray (10 To 20)

ReDim Preserve aArray (10 To 25) 'діє

ReDim Preserve aArray (15 To 25) 'помилка

End Sub

Область видимості динамічних масивів (контейнерних, глобальних) визначається способом їх оголошення — якщо за допомогою оператора Public, то масив буде глобальним, якщо за допомогою Dim, то контейнерним.

 

Присвоювання масивів

Починаючи з Visual Basic 6.0, можна присвоювати вміст одного масиву іншому так само, як ви при­своювати значення однієї змінної іншій. Наприклад, необхідно скопіювати масив байтів. Це можна зробити, копіюючи байт за байтом:

Sub ByteCopy(oldCopy() As Byte, newCopy() As Byte)

Dim і As Integer ReDim

newCopy (Lbound (oldCopy) To UBound(oldCopy)

For і - Lbound(oldCopy) To Ubound(oldCopy)

newCopy(i)= oldCopy(i)

Next

End Sub

Проте набагато простіше і привабливіше це виглядає, якщо привласнити один масив іншому:

Sub ByteCopy(oldCopy() As Byte, newCopy () As Byte)

newCopy = oldCopy

End Sub

Існують певні правила присвоювання змінних. Наприклад, якщо присвоювання змінної, оголошеної як Long, значення змінної типу lnteger здійснюється без проблем, то присвоювання значе­ння змінної типу Long змінної типу Integer легко може викликати помилку переповнювання (overflow).

 

Лекція 23. Робота з дисками та папками в Visual Basic.

 

Атрибути файлів

Windows (і DOS) використовує всього сім атрибутів файлу для визначення особистих характеристик файлу. Кожний окремий атрибут може об'єднуватися з іншими атрибутами, окрім атрибута Volume Label. Наприклад, файл може мати одночасно атрибути Hidden, System, Directory, Archive і Read­only.

В наступному списку міститься ім'я кожного атрибута файлу і описуються його значення.

Archive. Атрибут Archive вказує, чи змінювався файл з часу, коли його резервували останній раз за допомогою backup-програми, такий як BACKUP Windows, або backup-програми інших постачальників, таких як Fastback!, BackIt, Norton Backup і інших. Якщо файл має атрибут Archive, це означає, що для цього файлу необхідне резервування. Якщо файл не має атрибута Archive, то цей файл не змінювався з часу, коли він був резервований останній раз.

Directory. Якщо файл має атрибут Directory, це означає, що файл, в дійсності, є каталогом або підкаталогом (папкою — в терміно­логії Windows). Каталог (папка) диску — це файл, який містить ін­формацію про інші файли; коли ви створюєте каталог, Windows створює спе­ціальний файл каталога і дає йому атрибут Directory. Атрибут Directory повідомляє Windows про те, що цей файл містить інформацію про інші фай­ли і перешкоджає перейменуванню, копіюванню або видаленню каталога.

Hidden. Якщо файл має атрибут Hidden, Windows «приховує» файл, не по­казує його в більшості випадків при відображенні каталога, хоча Windows має опцію перегляду, яка відображає імена прихованих файлів.

Normal. Атрибут файлу Normal є, насправді, ознакою відсутності яких-небудь спеціальних атрибутів. Так званий Normal-атрибут (іноді званий general) файлу просто означає, що файл не має ника­ких інших атрибутів, окрім, можливо, атрибута Archive для вказівки, чи не­обхідно резервування для цього файлу.

Read-Only. Атрибут Read-Only означає, що можна тільки читати з фай­ла, але не можете змінювати його. Windows перешкоджає зміні, видаленню або перейменуванню файлу, який має атрибут Read-Only.

System. Атрибут System вказує Windows, що файл є частиною опе­раційної системи комп'ютера. Як у випадку з файлами Read-Only, Win­dows перешкоджає зміні файлу, що має атрибут System. Крім того, якщо створюється диск автозапуска DOS-командою SYS (або з Windows Conrol Panel), будь-які файли, що мають атрибут System, переносяться на новий диск автозавантаження.

Volume Label. Цей атрибут інформує Windows про те, що файл є міткою тому диска. [Мітка тому (volume label) — це ім'я, яке дається жорсткому диску (або дискеті) при форматуванні, використовується DOS-ко­манди LABEL або зміні властивості Label в листі властивостей диска. Диск мо­жет мати тільки одну мітку тому одночасно.

Windows представляє кожний окремий атрибут файлу унікальним числом і зберігає це число з інформацією про ім'я і розмір файлу. Якщо файл має декілька атрибутів, Windows складає кодові числа для кожного атрибута і зберігає їх суму.

VB-константа Значення Що означає

vbNormal 0 Normal

vbReadOnly 1 Read-Only

vbHidden 2 Hidden

vbSystem 4 System

vbVolume 8 Volume Label

vbDirectory 16 Каталог або підкаталог диска

vbArchive 32 Archive.

 

Отримання шляху поточної папки і буквеної мітки диска

Вибірка поточного диска і шляху папки досить проста. Обидві частини інформа­ції можна отримати, використовуючи функцію CurDir, яка повертає рядок, який містить повний шлях поточної пакпи, включаючи буквену мітку диска. (Ім'я CurDir є абревіатурою слів current directory)

Функція CurDir має наступний синтаксис:

CurDir[(drive)]

Тут drive представляє будь-який вираз типу String і вказує функції CurDir, поточну пакпу якого диска необхідна користувачу. Якщо аргумент drive опущений, CurDir повертає поточну папку поточного диска. Звичайно drive містить тільки одну букву; якщо користувач передає рядок з декількома симво­лами, CurDir використовує перший символ рядка як буквену мітку диска.

 

Зміна поточної папки

Для зміни поточної пакпи на якусь іншу використовується оператор ChDir (ChDir — це абревіатура слів change directory).

Оператор ChDir має наступний синтаксис:

ChDir path

Аргумент path представляє будь-який вираз типу String, який має резуль­татом допустимий шлях папки; path може (необов'язково) містити буквену мітку диска. Якщо користувач включає буквену мітку в аргумент path, ChDir змінює поточну папку диска на вказану в path без зміни текучо­го диска.

 

<== предыдущая лекция | следующая лекция ==>
Do While | Видалення файлу
Поделиться с друзьями:


Дата добавления: 2014-01-05; Просмотров: 343; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.043 сек.