ЗМІСТ:
Якщо ви грали в комп'ютерні ігри, то напевно зберігалися. А чи замислювалися ви над тим, що значить зберегтися? Ви знаєте, що в результаті збереження гра в наступний раз починається з того місця, де ви зупинилися раніше. А як комп'ютер пам'ятає, де ви зупинилися? В якому місці комп'ютера зберігається ця інформація? У персональному комп'ютері два види пам'яті - оперативна і на жорсткому дискові. Оперативна пам'ять стирається в момент вимикання комп'ютера, а оскільки комп'ютер ми вимикаємо постійно, то використовувати її для збереження не можна. Тому все, що потрібно зберегти, комп'ютер запам'ятовує на диску. Коли наступного разу ви запускаєте гру, то програма гри зчитує з диска збережену інформацію і з її допомогою дозволяє вам продовжити гру з того місця, де ви зупинилися.
Диск складається з файлів і їх дуже багато. Кожна програма зберігається в своєму файлі. Скільки програм, стільки і файлів. Кажуть, що коли відбувається збереження інформації в файл, то інформація виводиться або записується з оперативної пам'яті в файл, а коли гра або інша програма читає цю інформацію з файлу, то кажуть, що інформація вводиться або завантажується з файлу в оперативну пам'ять.
Отже, основним інформаційним об'єктом у ПК є файл. Як тип даних файл – це іменована послідовність однорідних компонентів, що зберігаються на магнітних дисках. Кількість записів у файлі чітко не фіксується і може змінюватися. Будь-який файл можна розглядати як доступну область зовнішньої пам'яті з певним ім'ям, в якій зберігається деяка сукупність даних.
Тип даних, що містяться у файлі, визначає тип доступу до нього. У Visual BASIC 6.0 реалізовано три типи доступу до файлів:
послідовний – для читання та запису текстових файлів;
довільний – для читання і запису тексту або структурованих двійкових файлів із записами фіксованої довжини;
двійковий – для читання та запису довільно структурованих файлів.
Із вищеперерахованих режимів доступу найбільш часто використовується послідовний, оскільки в практиці програмування нерідко виникає необхідність запису даних в текстовий файл, для чого послідовній доступ найбільш зручний. Значно рідше в наш час находять застосування довільний і двійковий режими доступу, які достались Visual Basic у спадок з тих часів, коли ще не було Windows з її можливостями і програмісту доводилось самому писати підпрограми для здійснення складних дискових операцій з файлами баз даних, малюнками і іншими складними форматами. В наш час це здійснюється значно простіше з використанням об’єктів і методів інших додатків Windows. Операційна система або будь-який додаток, у тому числі розроблений мовою програмування Visual Basic 6.0 зв'язується з файлом за допомогою каналу введення-виведення. Під час відкривання файлу ставиться у відповідність канал за допомогою якого записуються або прочитуються дані.
Послідовний доступ розміщує елементи (записи) у файлі за принципом "наступний після попереднього". У такій послідовності елементи з файлу і читаються – спочатку перший, потім другий, далі третій і т.д. Двадцять перший елемент можна прочитати тільки після двадцятого. Послідовний доступ застосовується в основному для роботи з текстовими файлами, тобто з файлами, елементи яких записано у вигляді символів. Кожен елемент може мати довільну довжину. Тому вони розділяються спеціальним символом.
Послідовний доступ краще використовувати для файлів, що складаються тільки з тексту, створених за допомогою типового текстового редактора. Послідовний доступ не дуже підходить для збереження довгого ряду чисел, оскільки кожне число у послідовному файлі зберігається як символьний рядок. У цьому разі для збереження чотиризначного цілого числа були б потрібні 4 байти замість 2.
Щоб відкрити файл для послідовного доступу, потрібно використати такий синтаксис оператора Open:
Open Ім'яФайлу For <Режим_роботи> As #нф
Ім'я файлу – це або рядок символів, взятий у лапки, або вираз, значення якого є рядок символів. Він представляє собою шлях (маршрут) до файлу, що відкривається. Якщо вказано тільки ім'я файлу, файл повинен розташовуватись у поточній папці.
<Режим роботи> – це одне з трьох ключових слів: Output, Append, Input:
Output – якщо файл відкривається для запису до нього даних, починаючи з першої позиції.
Append – якщо файл відкривається для запису до нього даних не з першої позиції, а з кінцевої.
Input – якщо файл відкривається для читання з нього текстових даних.
нф – номер (дескриптор) файлу – будь-яке число від 1 до 511. Число потрібно для ідентифікації файлу в програмі.
Якщо файл не існує і відкривається для читання (For Input), то Visual Basic видає повідомлення про помилку, а якщо для запису або додання (Output чи Append), то створюється новий файл. Якщо файл з вказаним ім'ям існує, то в режимі Output його вміст вилучається, а в режимі Append файл відкривається для додавання символів:
Open "C:\README.TXT" For Input As #1
Open "C:\DATA\TEXT.TXT" For Output As #2
Open "C:\USERS.TXT" For Append As #3
Після відкривання файлу для виконання операцій Input, Output або Append його треба закрити за допомогою оператора Close, перш ніж знову відкрити для виконання операції іншого типу.
Всі відкриті текстові файли закриваються однаково за допомогою оператора
Close #[<Список_ Дескрипторів>]
<Список_Дескрипторів> – це записані через кому ідентифікатори файлів, які повинні бути закриті. Якщо <список дескрипторів> відсутній, будуть закриті всі відкриті файли.
У Visual Basic для запису інформації у файл використовуються оператори Print # та Write #.
Синтаксис операторів запису в текстовий файл однаковий:
Print # нф, <Список_ Значень> Write #нф, <Список_ Значень>
нф – це ціле число, яке повинно збігатись з ідентифікатором відкритого для запису файлу;
<Список_Значень> – це записані через роздільник значення (або змінні). Якщо <Список_Значень> відсутній, то в файл буде записаний порожній рядок.
Для форматування інформації, що записується у файл потрібно по-різному відокремлювати дані в операторі Print. Якщо їх відокремлювати комами, то у файлі вони будуть відокремлені символами табуляції.
Якщо ж в операторі для відокремлення даних використати крапку з комою(;), то дані у файл записуються без роздільників. Крім того, в <Списку Значень> оператора Print можуть бути включені функції:
Spc(n) – для вставки n пробілів між значеннями в текстовому рядку;
Tab(n) – для вказівки номера n позиції для запису наступного значення.
Роздільником в <Списку Значень> в операторі Write # є кома. Список значень переглядається послідовно, а елементи цього списку записуються в один текстовий рядок файлу через кому. Елементи типу String поміщуються в лапки. Після запису останнього елемента записується символ переходу на новий рядок.
Якщо Print # зберігає дані у вигляді звичайного тексту, то Write # форматує текстові рядки в лапки, а цифри виводяться без лапок. Наприклад:
Print # 1, "Київ"; "Харків"; 25 ' у файлі буде: Київ Харків 25
Write # 2, "Київ", "Харків"; 25 ' у файлі буде "Київ"; "Харків"; 25
Оператор Print зручний для охайного редагування тексту вихідного файлу. Оператор Write краще застосовувати, коли вихідний файл буде використовуватись надалі як вхідний для інших програм.
Приклад. Записати слово "Азія" і число 1998 на диск c: в текстовий файл з ім'ям Filimon.txt, що розташовується в папці VB.
Рішення: Перш за все ви повинні переконатися, що така папка дійсно існує за вказаною адресою. Файлу ж там може і не бути. Потім придумаємо файлу Filimon.txt номер, яким будемо користуватися в програмі. Нехай це буде 1.
Перш ніж почати працювати з файлом, він повинен бути відкритий. При цьому комп'ютер виконує певні підготовчі дії для роботи з файлом. Ось як виглядає оператор, що відкриває текстовий файл для запису:
Оператор: Open "C:\VB\Filimon.txt" For Output As #1
Переклад: Відкрити файл "C:\VB\Filimon.txt" для виводу як №1
Якщо файл раніше не існував, то він створюється. Якщо файл відкривається для запису, то магнітна головка переміщається в початок файлу. Це означає, що якщо в файлі було раніше щось записано, то все зітреться. Ось програма:
Private Sub Command1_Click()
Open "C:\VB\Filimon.txt" For Output As #1 'Відкрити для запису файл Filimon.txt
в папці VB диску C под номером 1
Write #1, "Азія" 'Записати в файл №1 рядок "Азія"
Write #1, 1998 'Записати в файл №1 в наступний
рядок число 1998
Close #1 'Закрити файл №1
End Sub
Видно, що запис здійснюється оператором Write. Після роботи з файлом його потрібно закрити оператором Close.
Давайте переконаємося, що все дійсно правильно записалося. Для цього вийдемо з Visual Basic в Windows, знайдемо потрібну папку і виявимо, що там дійсно знаходиться файл Filimon.txt. Щоб переглянути його, потрібно відкрити за допомогою програми Notepad. Файл міститиме два рядки:
"Азія"
1998
Якщо замість двох операторів Write написати один:
Write # 1, "Азія", 1998.
то в файл буде записаний один рядок:
"Азія", 1998.
Що б не втратити вміст файлу, якщо потрібно дописати що-небудь в його кінець, то замість слова Output в операторі Open потрібно використовувати оператор Append.
Зручно розміщувати текстовий файл, в який програма зберігає свої дані, в тій же папці, де знаходяться файли вашого проекту. У цьому випадку виникає проблема – при перенесенні папки з проектом в інше місце змінюється її адреса, а значить і адреси файлів даних. А в операторі Open вказано стару адресу. У цьому випадку Visual Basic видасть повідомлення про помилку. Тому потрібно в операторі Open дати зрозуміти комп'ютеру, що файл знаходиться саме в папці з файлами проекту. Робиться це так:
Open App.Path & "\ Filimon.txt" For ...
App.Path - це адреса папки вашого проекту, де б він не розташовувався.
Щоб відредагувати файл послідовного доступу, спочатку треба ввести записи з файлу у програмні змінні, після чого змінити їх і записати знову у файл.
Читання даних з файлу, відкритого для послідовного доступу, здійснюється за допомогою оператора Input, що має кілька різновидів:
Input # – прочитує послідовність символів, записаних за допомогою оператора Write #;
Line Input # – прочитує один рядок;
Input$ – прочитує певну кількість символів.
Перед читанням треба відкрити файл за допомогою оператора Open...For.
Наприклад:
Open "C:\Text.Txt" For Input As #1
Оператор Input має наступний синтаксис:
Input #нф, <Список Змінних>
нф – це ціле число, яке повинно збігатись з ідентифікатором відкритого для читання файлу;
<Список_Змінних> – це записані через кому змінні. В кожному текстовому рядку файлу кількість та тип змінних повинно збігатись з кількістю та типом значень в <Списку Значень> оператора Write.
Оператор Line Input має наступний синтаксис:
Line Input # нф, <3мінна>
Змінна – змінна типу String або Variant. Результатом роботи оператора Line Input є присвоєння <3мінній> значення всього текстового рядка файлу.
Читання із текстового файлу виконується звичайно циклічно за допомогою оператора циклу з умовою Do While...Loop або Do Until...Loop. Умовою закінчення циклу є спроба прочитати дані після читання останнього текстового рядка. Ця спроба приводить до того, що після досягнення кінця файлу значення функції EOF(нф) буде True.
Функція Input$ – це функція двох аргументів:
Input$(Кількість_Символів, нф)
перший її аргумент – це кількість символів, які треба прочитати із вхідного файлу.
другий аргумент – ідентифікатор файлу, відкритого для читання.
значення, що повертається – прочитаний текст у вигляді символьного рядка.
Цю функцію використовують для одночасного читання всього текстового файлу та розміщення його в текстовому полі екранної форми. Для цього необхідно визначити довжину файлу в байтах за допомогою функції LOF(нф).
Наприклад, для читання всієї інформації з файлу можна запропонувати один з двох варіантів:
Варіант 1
Do Until EOF (1)
Line Input #1, String
Text= Text & String
Loop
Варіант 2
Text=Input$(LOF(1),1)
Close #1
Обидва варіанти приводять до однакового результату.
Приклад: У файлі Filantrop.txt в папці проекту записані такі рядки:
1999
"Азія"
"Африка", 2000
....
Вивести третій рядок на екран монітора.
Ось програма:
Private Sub Command3_Click ()
Dim a1 As Integer 'Чотири змінні в оперативній пам'яті,
Dim a2 As String 'в які будуть завантажені дані
Dim a3 As String 'з перших трьох рядків
Dim a4 As Integer 'файлу
Open App.Path & "\ Filantrop.txt" For Input As # 1
'Відкрити для читання під номером 1 файл Filantrop.txt з папки проекту
Input # 1, a1 'читання 1-го рядка
Input # 1, a2 'читання 2-го рядка
Input # 1, a3, a4 'читання 3-й рядки
Close # 1 'Закрити файл 1
Debug.Print a3, a4
End Sub
Отримаємо результат у вікні Immediate:
Африка 2000
Видно, що зчитування здійснюється оператором Input. Після роботи з файлом його потрібно закрити оператором Close. Зверніть увагу, що для того, щоб дістатися до третього рядка, нам довелося "даремно" зчитати перші два.
Приклад: У попередній задачі ми ще до зчитування знали, як розташовуються по рядках і всередині рядків дані у файлі Filantrop.txt. Однак, частіше бувають випадки, коли наперед невідомий вміст файлу. Наперед відомо тільки те, що файл складається з рядків. Для того, що б зчитати дані з файлу, можна завантажувати кожен рядок файлу, незалежно від того, з яких даних він складається, в змінну типу String. Ось програма, що роздруковує три перші рядки файлу Filantrop.txt:
Private Sub Command4_Click ()
Dim s1 As String 'Три змінні в оперативній пам'яті,
Dim s2 As String 'в які будуть завантажені три
Dim s3 As String 'перші рядки файлу
Open App.Path & "\ Filantrop.txt" For Input As # 1 'Відкрити для читання під
№ 1 файл Filantrop.txt з папки проекту
Line Input # 1, s1 'читання чергового рядка файлу
Debug.Print s1
Line Input # 1, s2 'читання чергового рядка файлу
Debug.Print s2
Line Input # 1, s3 'читання чергового рядка файлу
Debug.Print s3
Close # 1 'Закрити файл 1
End Sub
Завантаження чергового рядка в змінну типу String виконує оператор Line Input. Ось результати в вікні Immediate:
1999
"Азія"
"Африка", 2000
Видно, що лапки і кома не зникли, як це було в задачі 2. Це тому, що Line Input не звертає уваги на символи, з яких складається рядок файлу. Він просто завантажує їх почергово в строкову змінну. У нашому випадку, наприклад, рядок s3 складається з символів "Африка", 2000, включаючи лапки і кому.
У випадку, якщо потрібно змінити вміст текстового файлу на диску, то доцільно повністю завантажити його в пам'ять, змінити його там, а потім результат послідовно записати назад в файл.
Приклад: Файл f складається з 10 рядків. Дописати в кінець кожного рядка знак оклику.
Програма:
Dim s (1 To 10) As String
Private Sub Command1_Click ()
'Завантажуємо файл в пам'ять:
Open App.Path & "\ f.txt" For Input As # 1 'Відкрити 1 файл f.txt з папки проекту
For i = 1 To 10
Line Input # 1, s (i) 'читання чергового рядка файлу
Next
Close # 1 'Закрити файл 1
'Перетворення рядків в пам'яті:
For i = 1 To 10
s (i) = s (i) & "!" 'Додаємо знак оклику в кожен рядок
Next
'Записуємо перетворені рядки в файл:
Open App.Path & "\ f.txt" For Output As # 1 'Відкрити для запису під номером 1 файл f.txt з папки проекту
For i = 1 To 10
Print # 1, s (i) 'Запис чергового рядка в файл
Next
Close # 1 'Закрити файл 1
End Sub
Видно, що в цій програмі запис здійснюється оператором Print, а не Write. Інакше б рядки в остаточному файлі бралися б в лапки, як це було в задачі 2.
Таким чином, оператор Print застосовується для виведення не тільки на монітор, а й в файл.
Приклад: Потрібно зчитати всі рядки файлу, а скільки рядків у файлі не відомо.
У цьому випадку оператор циклу For не підійде, так як там потрібно вказувати точне число рядків. Якби можна було вказати: "Читай, поки файл не скінчився". І така команда є. В її основі лежить функція EOF (End of File), яка в процесі послідовного зчитування файлу весь час перевіряє закінчення файлу і відповідно приймає значення True, інакше – False.
Така команда реалізується фрагментом:
Do While Not EOF (1) 'Виконуй, поки НЕ настав КІНЕЦЬ ФАЙЛА 1
Line Input # 1, s (i)
i = i + 1
Loop
Приклад: Нехай у файлі Данні.txt записано число 10. Після запуску програма повинна раз в секунду друкувати послідовні цілі числа, починаючи з числа, записаного в цьому файлі. Спостерігаючи деякий час за друком чисел, ви завершуєте виконання проекту. Суть завдання в тому, щоб при наступному запуску програма почала друкувати не з 10, а з того числа, на якому завершився проект.
Послідовність дій:
1. Необхідно зробити так, щоб при запуску програми число зчитувалося з файлу і рахунок починався з нього.
2. Потрібно зробити так, щоб при завершенні роботи останнє з надрукованих чисел записувалося в файл на місце десятки. Тоді наступного разу рахунок сам собою почнеться з нього.
Створимо таймер та налаштуємо його інтервал на 1 секунду.
Програма:
Dim Число As Integer
Private Sub Form_Load ()
Open App.Path & "\ Данні.txt" For Input As # 1 'Відкрити для читання під № 1 файл Данні.txt з папки проекту
Input # 1, Число 'Читання числа, з якого почати рахунок
Close # 1 'Закрити файл №1
End Sub
Private Sub Timer1_Timer () 'Процедура таймера, виконувана раз в секунду
Debug.Print Число
Число = Число + 1 'Отримуємо наступне число
End Sub
Private Sub Form_Unload (Cancel As Integer)
Open App.Path & "\ Данние.txt" For Output As # 1 'Відкрити для запису під № 1 файл Данні.txt з папки проекту
Write # 1, Число 'Запис в файл числа, на якому закінчено рахунок
Close # 1 'Закрити файл №1
End Sub
Тут використовується подія Form_Unload. Вона так само, як і подія Form_Terminate, настає при завершенні роботи проекту натисканням на хрестик в правому верхньому куті форми.
Крім файлів з послідовним доступом існують ще файли з довільним доступом. Інформація в цих файлах записується упорядковано і регулярно, завдяки чому до неї можливий більш гнучкий і швидкий доступ.
Для роботи з файлом у режимі довільного доступу його потрібно відкрити оператором Open, що має вигляд:
Open Ім’яФайлу For Random As [#] Дескриптор [Len=ДожинаЗапису]
де Ім’яФайлу – вираз рядкового типу, що подає ім’я файлу. Наприклад:
“D:\TK17\Файли_даних\Ціна.dat”
“Ціна.dat”
У першому випадку зазначено папку, в якій зберігається файл Ціна.dat, а в другому передбачається, що він зберігається у поточній папці.
Нижче наведено деякі поняття, що стосуються роботи з файлами з довільним доступом.
Дескриптор – вираз цілого типу, що визначає номер каналу введення/виведення для файлу, що відкривається (наприклад, 1). Символ # перед дескриптором необов’язковий.
Довжина запису – вираз цілого типу, що визначає розмір елемента в байтах (наприклад, 25). Часто для завдання довжини запису використовують вмонтовану функцію Len(х), що визначає розмір аргументу х. При відкритті файлу х вказує ім’я змінної типу даних користувача, що буде використовуватись для роботи з файлом.
Open txtІм’яФайлу For Random As # 1 Len (udtВідомості)
Відкривається файл, ім’я якого зазначено в текстовому полі txtІм’яФайлу. Довжина записів у файлі збігається з розміром змінної типу даних користувача udtВідомості. Для роботи з файлом призначений перший канал введення/виведення.
Для запису даних у файл використовують оператор Put, для читання – оператор Get. Ці оператори мають вигляд:
Put # дескриптор, Номер запису, Змінна
Get # дескриптор, Номер запису, Змінна
Діє оператор Put так: значення, що зберігається в полі пам’яті змінної, пересилається з оперативної пам’яті у файл, обумовлений дескриптором, і у файлі записується на тім місці, яке задано номером запису.
Оператор Get має протилежне призначення. Він вказує, що потрібно знайти запис із зазначеним номером у файлі, що визначений дескриптором, а потім переслати вміст цього запису з файлу в поле, що займає зазначена змінна в оперативній пам’яті.
Put # 1, і, udtВідомості
Get # 1, і, udtВідомості
У першому випадку здійснюється запис у файл, пов'язаний із першим каналом введення/виведення, інформації, що зберігається в оперативній пам’яті в змінній типу даних користувача udtВідомості. Ця інформація записується у файл на місце з номером і.
У другому випадку відбувається зворотний процес: з і-го місця у файлі зчитується інформація і пересилається в оперативну пам'ять у змінну udtВідомості.
Для закриття файлів використовують оператор Close, що має вигляд:
Close [#] [СписокДескрипторів]
Якщо списку дескрипторів немає, то закриваються усі відкриті файли.
Close # 1,2,5
Close
У першому випадку закриваються тільки файли, для яких було призначено канали введення/виведення 1, 2 і 5, а другому – усі файли.
Перейменування файлу здійснюється оператором Name, що має вигляд:
NameСтареІм’я As НовеІм’я
Копіюють файли за допомогою оператора FileCopy, що має вигляд:
FileCopy Ім’яВихідногоФайлу, Ім’яКінцевогоФайлу
Щоб видалити файл із певним ім’ям, застосовують оператор Kill:
Kill Ім’яФайлу
У всіх цих операторах імена файлів задаються рядковими виразами, що визначають імя файлу і, можливо, шлях до нього.
Приклади операторів перейменування, копіювання і видалення файлів:
Name “Лютий.dat” As “Березень.dat”
FileCopy “Податки.dat”, “Утримання.dat”
Kill “Податки.dat”
У першому випадку файл із даними за лютий перейменуються на файл із даними за березень. У другому – дані з файлу про податки копіюються в новий файл, що містить відомості про утримання. У третьому вилучається файл із даними про податки.
Оскільки всі записи у файлі з довільним доступом мають однакову довжину, то, знаючи загальну довжину всього файлу, можна визначити кількість записів у ньому за допомогою такого оператора:
IntКільк_зап =Lof(x)/Len(udtВідомості)
Тут Lof(x) – вмонтована функція VB, за допомогою якої визначається загальна довжина файлу, пов’язаного з каналом х (Lof – Length Of File – довжина файлу).
Visual Basic може виконувати над файлами і папками ті ж дії, що й в Провіднику Windows, а саме: створення папок, копіювання, переміщення і знищення папок і файлів.
Нехай на диску С в папці temp розташовані папки 222, 333, 666, 999 і файл 1.txt.
FileCopy "c:\ temp\1.txt", "c:\temp\2.txt" - Оператор FileCopy копіює файли. Має два параметри: перший – адреса файлу, що копіюється; другий – адреса файлу, в який виконується копіювання. У даному прикладі Файл 1.txt копіюється в свою ж папку під ім'ям 2.txt
FileCopy "c:\temp\1.txt", "c:\temp\222\4.txt" - Файл 1.txt копіюється в папку c: \ temp \ 222 під ім'ям 4.txt
Name "c:\temp\222\4.txt" As "c:\temp\222\ 5.txt" - Оператор Name As перейменовує і переміщує файли і папки. Два його параметра мають таке ж значення, що і у оператора FileCopy. У даному прикладі Файл 4.txt перейменовується в 5.txt і залишається в своїй папці.
Name "c:\temp\222\5.txt" As "c:\temp\5.txt"- Файл 5.txt переміщається в папку temp.
Name "c:\temp\333" As "c:\temp\444" - Папка 333 перейменовується в 444.
Name "c:\temp\666" As "c:\temp\222\666"- Папка 666 переміщається разом з вмістом всередину папки 222
Kill "c:\temp\5.txt" - Оператор Kill знищує файл.
MkDir "c:\temp\888" - Створюється порожня папка 888
RmDir "c:\temp\888" - Знищується порожня папка 888
У програмуванні широко використовується поняття поточної папки. На даний момент часу поточна папка може бути тільки одна. Призначте поточну папку і запис адрес в операторах істотно скоротиться.
Наприклад, працюючи в папці c: \ temp \ 999, замість того, щоб весь час писати оператори:
FileCopy "c: \ temp \ 999 \ 22.txt", "c: \ temp \ 999 \ 44.txt"
можна задати поточну папку:
ChDir "c: \ temp \ 999"
а потім писати оператори такого виду:
FileCopy "22.txt", "44.txt"
Функція CurDir дозволяє дізнатися, яка папка зараз є поточною. Для цього достатньо виконати оператор Debug.Print CurDir.
За допомогою функції Shell можна, не виходячи з проекту, запускати інші програми Windows. Наприклад:
y = Shell ( "C: \ WINDOWS \ Notepad.exe")
запускає стандартний текстовий редактор Windows - Блокнот (Notepad). В дужках потрібно вказати адресу до exe-файлу потрібного додатка. Замість адреси можна писати командний рядок:
y = Shell ( "C: \ WINDOWS \ Notepad.exe C: \ Untitled.txt")
Тут Блокнот відкриється із завантаженим файлом C: \ Untitled.txt.
Можливо управляти видом вікна, в якому відкриється програма:
y = Shell ( "C: \ WINDOWS \ Notepad.exe C: \ Untitled.txt", vbMaximizedFocus)
Тут вікно буде розгорнуто на весь екран. Є й інші константи: vbHide, vbNormalFocus, vbMinimizedFocus, vbNormalNoFocus, vbMinimizedNoFocus.
Питання для перевірки:
Поясніть, що означають наступні терміни: файл, запис, метод доступу, структура запису?
Яке призначення операторів відкриття та закриття файлів?
У яких випадках використовується тип даних користувача? Наведіть приклади.
Якими операторами описується тип даних користувача? Наведіть приклади.
Чи допустимі різні типи даних для елементів одного запису?
Вкажіть, за допомогою яких операторів виконується запис даних у файл послідовного доступу (довільного доступу)?
Вкажіть, за допомогою яких операторів виконується читання із файлу?
Як розпізнати кінець файлу даних?
Як розпізнати файл на диску?
Як розпізнати довжину файлу?
У яких випадках закривають файл?
Охарактеризуйте файл послідовного доступу.
Що таке «дескриптор файлу»?
Опишіть функції та синтаксис оператора Open.
Опишіть функції та синтаксис оператора Close.
Опишіть призначення та синтаксис функції Input.
Опишіть призначення та синтаксис функції LOF.
Опишіть призначення та синтаксис функції Seek.
Опишіть призначення та синтаксис функції Loc.
Опишіть функції та синтаксис оператора Input #.
Опишіть функції та синтаксис оператора Line Input #.
Опишіть функції та синтаксис оператора Print #.
Опишіть функції та синтаксис оператора Write #.
Опишіть функції та синтаксис оператора Get #.
Опишіть функції та синтаксис оператора Put #.
Як можна організувати спільний доступ кількох програм до одного файлу одночасно?
Чому після роботи з файлом рекомендується закривати його?
У чому ви бачите різницю режимів текстового та бінарного файлів?
Як відбувається зчитування та запис даних у режимі текстового файлу?
Як відбувається зчитування та запис даних у режимі бінарного файлу?
У чому різниця операторів «Print» та «Write» під час роботи з файлами?
У чому різниця операторів «Input» та «Line Input» під час роботи з файлами?
Войтюшенко Н. М., Інформатика і комп’ютерна техніка: навч. пос. [для сутд. вищ. навч. закл.]/ Н.М. Войтюшенко, А.І.Остапець. – К.: Центр учбової літератури, 2009. – 564 с.
Трофименко О.Г. Програмування в Visual Basic. [Методичний посібник для лабораторних занять]. – Одеса, 2004. – 38 с.
Рогоза М.Є. Основи інформатики та технологій програмування: навчальний посібник / Рогоза М.Є., Рамазанов С.К., Велігура А.В., Танченко С. М. - Луганськ: Вид-во СНУ ім. В.Даля, 2012. - 568 с.