Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Visual Basic 6.0~03.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
4.48 Mб
Скачать

Мал. 8.6. Стандартне діалогове вікно.

Зверніть увагу - властивості MaxFileSize задається значення 32 767. Якщо задати цю властивість, в діалоговому вікні відображуватимуться лише імена файлів розміром 32 До і менше. Цій властивості можна задати довільне значення, але необхідно потурбуватися про те, щоб файли, що відкриваються, не виходили за межі можливостей елементів. Втім, у виконуваних нами операціях розмір файлу ніде не обмежується, так що для цього додатку властивість MaxFileSize не має особливого значення.

Нарешті, ми задаємо властивість ShowOpen, щоб відобразити діалогове вікно. Якщо користувач натискає кнопку Cancel, діалогове вікно повертає код помилки, а робота функції відміняється. Інакше властивості FileName задається ім'я файлу, вибраного користувачем, і це значення повертається функцією GetFile(). Якщо ім'я файлу не вибране, функція повертає порожній рядок. Давайте напишемо алгоритм дешифрування, який відновлюватиме початковий вид файлу:

1. Додайте наступний фрагмент:

Private Function Decrypt(infile As String) As Boolean

Dim fileno1 As Integer

Dim fileno2 As Integer

Dim outfile As String

Dim xpos As Long

Dim x As Byte

Dim t(3) As Byte

‘ Вивести покажчик у вигляді пісочного годинника

MousePointer = vbHourglass

xpos = 4

outfile = "c:\temp.enc"

fileno1 = FreeFile

Open infile For Binary As fileno1

fileno2 = FreeFile

Get #fileno1, 1, t(0)

Get #fileno1, 2, t(1)

Get #fileno1, 3, t(2)

Get #fileno1, 4, t(3)

If (t(0)=0 And t(1)=128 And t(2)=0 And t(3)=128) Then

Open outfile For Binary As fileno2

Do While Not EOF(fileno1)

xpos = xpos + 1

Get #fileno1, xpos, x

Get #fileno2, xpos - 4, x + 128

Loop

Close fileno2

Decrypt = True

Else

Decrypt = False

End If

Close fileno1

‘ Видалити початковий файл і замінити його шифрованим

If Decrypt Then

Kill infile

FileCopy outfile, infile

Kill outfile

End If

‘ Відновити покажчик миші

MousePointer = vbNormal

End Function

Зверніть увагу на те, що ця функція майже співпадає з функцією шифрування. Перед розшифровкою файлу необхідно переконатися, що він починається з електронного підпису, тобто ланцюжки байтів 0, 128, 0, 128. В процесі шифрування програма вставляє її в початок зашифрованого файлу. Завдяки підпису додаток визначає, чи дійсно файл був зашифрований, перед тим, як намагатися розшифрувати його.

2. Додайте код для виклику функції Decrypt при виборі з меню відповідної команди:

Private Sub mnuActDecrypt_Click()

Dim filename As String

filename = GetFile()

If filename <> "" Then

If Decrypt(filename) = False Then

MsgBox "Помилка при розшифровці файлу"!

End If

End If

End Sub

Програма готова - збережете і Запустіть її. Хоча нічого особливо ефектного не відбувається, цей приклад наочно показує, як відбуваються запис і читання файлів з диска. Тепер ви маєте достатній досвід роботи з файлами і зможете застосовувати їх у своїх програмах.

Елементи даних

Багато програмістів на Visual Basic вважають за краще зберігати дані в таблицях Microsoft Access або інших баз даних, оскільки Visual Basic дозволяє відносно легко працювати з ними. Досить помістити елементи на форму, задати значення декількох властивостей - і можна працювати практично з будь-якою базою даних! Ви можете переконатися в цьому на прикладі бази даних Biblio.mdb, що входить в комплект Visual Basic, - за умовчанням вона знаходиться в каталозі VB98. Ця база даних (і таблиці, що входять в неї) була спроектована заздалегідь, але вам, ймовірно, захочеться створювати свої власні бази даних. Для створення бази даних Access можна жорстко закодувати усі визначення таблиць, полів і індексів, але це не завжди зручно. Існує пара інших варіантів:

  • Якщо на вашому комп'ютері встановлений Microsoft Access, ви можете легко створити базу даних, з якою працюватиме Visual Basic. Це найшвидший і ефективніший, але не єдиний спосіб створення бази даних.

  • Якщо у вас немає Access, скористайтеся спеціальною надбудовою Visual Basic Visual Data Manager (мал. 8.7). Вона запускається командою Add - Ins > Data Manager.

Мал. 8.7. VisualData Manager.

Створивши базу даних, слід вибрати спосіб роботи з нею в Visual Basic. Існує декілька варіантів:

  • Самостійно запрограмувати усі необхідні дії і працювати з базою даних через DAO (Data Access Objects - об'єкти для звернення до баз даних), RDO (Remote Database Objects - об'єкти дистанційних баз даних) або ADO (ActiveX Data Objects - об'єкти даних ActiveX). Bce перераховані об'єкти дозволяють працювати із записами, таблицями і запитами з програми. Об'єкти ADO з'явилися тільки в Visual Basic версії 6-с їх допомогою можна звертатися до різних баз даних через загальний універсальний інтерфейс.

  • Доручити усю чорнову роботу спеціальному майстрові - Visual Basic Data Form Designer. Щоб встановити його, виконаєте команду Add - Ins > Add - In Manager і виберіть майстра із запропонованого списку. Після цього майстер з'явиться в меню Add - Ins і залишиться там до тих пір, поки не буде видалений з Add - In Manager.

  • Скористатися елементами даних, що входять до складу Visual Basic. Саме цей спосіб розглядатиметься в наступному розділі.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]