- •Visual Basic for Applications
- •1. Основы языка программирования Visual Basic 5
- •1. Основы языка программированияVisualBasic
- •1.1. Общие сведения оVisualBasic
- •1.2. Среда vb, инструментальные средства. Разработка проектов
- •1.3. Типы данных. Константы и переменные
- •1.4. Операции
- •1.5. Ввод и вывод данных
- •1.6. Управляющие операторы
- •1.7. Массивы
- •1.8. Примеры программ работы с числами
- •1.9. Обработка строк. Примеры
- •1.10. Математические вычисления. Другие операторы и функции
- •1.11. Процедуры и функции. Примеры
- •1.12. Работа с файлами
- •2. ОсновыVba
- •3. Практические задания
- •3.1. Практическое задание №1. Знакомство сVba
- •3.2. Практическое задание №2. Линейное программирование
- •3.3. Практическое занятие №3. Программирование ветвлений
- •3.4. Практическая работа №4. Программирование повторений
- •3.5. Практическая работа №5. Работа с массивами
- •3.6. Практическая работа №6. Процедуры и функции
- •3.7. Практическое занятие №7. Файлы. Последовательный доступ
- •3.8. Практическое занятие №8. Файлы с произвольным доступом
- •Задания самостоятельной работы
- •4.1. Линейное программирование
- •4.2. Программирование ветвлений
- •4.3 Программирования циклов
- •4.4. Массивы
- •4.5. Файлы
- •5. Задания для контрольной работы
- •5.1. Для студентов очной формы обучения
- •5.1.1. Линейное программирование
- •5.1.2. Программирование ветвлений
- •5.1.3. Программирование циклов
- •5.1.4. Массивы
- •5.2. Для студентов заочной формы обучения
- •Список литературы
3.8. Практическое занятие №8. Файлы с произвольным доступом
Задача.
Ваша группа хранит данные о результатах экзамена в файле с произвольным (прямым) доступом.
|
Файлы произвольногодоступа– это провозвестники файлов баз данных. В этих типах файлов применяется особая структура данных –пользовательский тип данных. Он содержит компоненты разного типа данных.
Структуру данных (пользовательский тип данных) называют записью, а компоненты этой структуры –полямизаписи.
Базаданных– это множество единообразных записей.
Для открытия файла используется оператор
OpenИмяФайлаForRandomAs#ДискрипторФайлаLen=ДлинаЗаписи
Запись в файл
Put# ДискрипторФайла, НомерЗаписи, ИмяПеременной
Чтение из файла
Get# ДискрипторФайла, НомерЗаписи, ИмяПеременной
Откройте приложение MS Excel.
Выполните команду СервисàМакросРедактор Visual Basicили нажмите <Alt+F11>.
Добавьте форму (команда Insert UserForm)
Для изменения размеров формы используйте указатель мыши помещённый в правый нижний угол окна Формы(UserForm)
Разработайте пользовательский интерфейс, расположив на форме с помощью панели инструментов управления (ViewToolBox), следующие объекты управления:Label(Метка),TextBox(Текстовое поле),CommandButton(Командная кнопка),ListBox(Список).
В окне Properties(Свойства) для каждого объекта управления установить свойства, приведённые в таблице 7.
Таблица 7
Элемент управления |
Свойства |
Значения |
UserForm |
Caption |
Произвольный доступ |
Label1 |
Caption |
В группе |
Label2 |
Name |
lblKolichestvoZapisei |
Label3 |
Caption |
Фамилия И О |
ListBox1 |
Name |
lstFIO |
Label4 |
Caption |
Группа |
ListBox1 |
Name |
lstGroup |
Label5 |
Caption |
Оценка |
ListBox1 |
Name |
lstOtsenka |
CommandButton1 |
Name |
cmdVvodSpiskaStudentov |
Caption |
Ввод | |
CommandButton2 |
Name |
cmdChtenieIzFaila |
Caption |
Чтение из файла |
Примерный интерфейс программы может выглядеть так:
База данных содержит всего одну таблицу — сведения о студентах. Каждая строка этой таблицы представляется собой упорядоченный набор следующих значений:
ФамилияИ.О. — строка (типString) до 20 символов;
ДатаРождения— данное типаString до 4;
Группа— строка длиной до 5 символов;
Оценка — 1 символ.
Каждая запись будет состоять из 30 символов.
Создадим свой тип данных
Код программы
Private Type Dannye
FIO As String * 20
GodRozhdenija As String * 4
Group As String * 5
Otsenka As Byte
End Type
Dim Student As Dannye
Dim DlinaZapisi As Integer
Dim KolichestvoZapisei As Integer
Private Sub Form_Load()
DlinaZapisi = Len(Student)
Open "Database.dbf" For Random As #1 Len = Len(Student)
KolichestvoZapisei = LOF(1) \ DlinaZapisi
lblKolichestvoZapisei = Str(KolichestvoZapisei) + " записей"
Close #1
End Sub
Private Sub cmdVvodSpiskaStudentov_Click()
Dim i As Integer
Dim Kolichestvo As Integer
DlinaZapisi = Len(Student)
Open "Database.dbf" For Random As #1 Len = Len(Student)
KolichestvoZapisei = LOF(1) \ DlinaZapisi
Kolichestvo = InputBox("Введите количество записей", "Ввод числа", 0)
If Kolichestvo = 0 Then Exit Sub
For i% = 1 To Kolichestvo
Student.FIO = InputBox("Введите фамилию студента", "Ввод данных о студенте")
Student.GodRozhdenija = InputBox("Введите год рождения студента", "Ввод данных о студенте")
Student.Group = InputBox("Введите группу студента", "Ввод данных о студенте")
Student.Otsenka = InputBox("Введите оценку студента", "Ввод данных о студенте")
Put #1, i + KolichestvoZapisei, Student
Next
Close #1
End Sub
Private Sub cmdChtenieIzFaila_Click()
Dim i As Integer
lstFIO.Clear
lstGroup.Clear
lstOtsenka.Clear
DlinaZapisi = Len(Student)
Open "Database.dbf" For Random As #1 Len = DlinaZapisi
KolichestvoZapisei = LOF(1) \ DlinaZapisi
i = 1
Do While i <= KolichestvoZapisei
Get #1, i, Student
lstFIO.AddItem Student.FIO
lstGroup.AddItem Student.Group
lstOtsenka.AddItem Student.Otsenka
i = i + 1
Loop
Close #1
End Sub
Перед запуском программы сохраните файл под именем «Прямой доступ»
Составьте список из 20 фамилий студентов вашей группы.
Измените код программы так, чтобы на форму выводились фамилии студентов, сдавших экзамен на «4» и «5»