
- •5.05150104 "Дизайн друкованої продукції"
- •Урок 8. Запис і читання даних
- •Робота з ascii -файлами
- •Мал. 8.1. Ascii - файл з роздільниками.
- •Послідовний доступ
- •Мал. 8.2. Зразок послідовного файлу.
- •Мал. 8.3. Перегляд результатів.
- •Довільний доступ
- •Мал. 8.4. Запис в текстовому файлі.
- •Двійковий доступ
- •Проста програма шифрування
- •Мал. 8.5. Форма для програми шифрування.
- •Мал. 8.6. Стандартне діалогове вікно.
- •Елементи даних
- •Використання елементу даних
- •Властивості елементу даних
- •Мал. 8.8. Властивості елементу даних
- •Анатомія бази даних
- •Створення баз даних в Visual Data Manager
- •Мал. 8.9. Вікно бази даних із розширеними властивостями
- •Створення таблиці
- •Конструювання таблиці
- •Мал. 8.10. Діалогове вікно Table Structure.
- •Створення полів
- •Мал. 8.11. Діалогове вікно AddField.
- •Введення даних
- •Створення запиту
- •Мал. 8.12. Діалогове вікно Query Builder.
- •Мал. 8.13. Результати запиту.
- •Первинні ключі
- •Лічильники
- •Числові поля
- •Грошові поля
- •Логічні поля
- •Поля Memo
- •Поля дати/часу
- •Зміна таблиці
- •Технологія ado (ActiveX Data Objects)
- •Мал. 8.14. Моделъ ado.
- •Використання елементу даних ado
- •Мал. 8.15. Діалогове вікно сторінок властивостей елементу даних ado
- •Puc. 8.16. Вибір провайдера
- •Мал. 8.17. Вибір файлу бази даних
- •Мал. 8.18. Завдання властивості RecordSource
- •Використання об'єктів підключення і набору записів ado
- •Puc. 8.19. Створення посилання на бібліотеку типів ado
- •Додавання записів
- •Оновлення записів
- •Видалення записів
- •Що нового ми дізналися?
- •9 Урок. Друкування
- •Виведення даних на друкування
- •Метод Print
- •Перегляд значень у вікні безпосередніх обчислень
- •Перегляд помилок у вікні безпосередніх обчислень
- •Мал. 9.1. Вікно безпосередніх обчислень з інформацією про помилку.
- •Виправлення помилки
- •Метод PrintForm
- •Колекція Printers
- •Мал. 9.2. Виведення вмісту колекції Printers. Використання Crystal Reports в Visual Basic
- •Мал. 9.4. Режим конструктора в Crystal Reports Установка Crystal Reports Pro
- •Створення звіту
- •Мал. 9.6. Зв'язки між таблицями
- •Мал. 9.7. Вкладка Fields
- •Puc. 9.8. Вибір поля для сортування
- •Мал. 9.9. Вкладка Total Мал. 9.10. Фільтрація записів в звіті
- •Мал. 9.11. Вибір стилю звіту
- •Мал. 9.12. Готовий звіт
- •Мал. 9.13. Режим конструювання
- •Використання звіту в додатку
- •Мал. 9.14. Звіт в режимі конструювання. Мал. 9.15. Діалогове вікно Property Pages для Crystal Reports 4.6.
- •Мал. 9.16. Додавання елементу Crystal Report.
- •Мал. 9.17. Виведення звіту з додатка. Друкування початкового тексту програми
- •Мал. 9.18. Діалогове вікно Print. Діалогове вікно Print
- •Перегляд результатів
- •Розшифровка лістингу
- •Що нового ми дізналися?
Мал. 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. Саме цей спосіб розглядатиметься в наступному розділі.