скачать (808.5 kb.)
Доступные файлы (1):
1.doc | 809kb. | 16.12.2011 09:21 | ![]() |
1.doc
Файлы последовательного доступа можно сравнить с музыкальными записями на аудиокассете – для поиска нужной песни приходиться перематывать кассету и последовательно её прослушивать. Зато они очень просты и могут обрабатываться любым текстовым редактором.
Для открытия файла используется команда:
^ ИмяФайла For РежимРаботы As ДискрипторФайла
РежимРаботы может принимать одно из трёх значений;
Output — для записи данных (если информация в файле уже есть, то она в таком случае будет стёрта)
Append — для добавления информации в конец файла;
Input — для чтения из файла данных.
Для закрытия файла используется команда:
Close # [Список Дескрипторов]
Список Дескрипторов это записанные через запятую идентификаторы тех файлов, которые открыты.
Записать данные в файл, можно используя два способа:
Способ Write
Способ Print
Откройте приложение MS Excel.
Выполните команду СервисàМакросРедактор Visual Basic или нажмите <Alt+F11>.
Добавьте форму (команда Insert UserForm)
Для изменения размеров формы используйте указатель мыши помещённый в правый нижний угол окна Формы(UserForm)
Разработайте пользовательский интерфейс, расположив на форме с помощью панели инструментов управления (ViewToolBox), следующие объекты управления: Label (Метка), TextBox (Текстовое поле), CommandButton (Командная кнопка), ListBox (Список).
В окне Properties (Свойства) для каждого объекта управления установить свойства, приведённые в таблице 6.
Таблица 6
^ | Свойства | Значения |
UserForm | Caption | Последовательный доступ |
Label1 | Caption | В группе |
Label2 | Name | lblKolichestvo |
Caption | | |
Label3 | Caption | Фамилия И О |
ListBox1 | Name | lstFIO |
Label4 | Caption | Год рождения |
ListBox2 | Name | lstGodRozhdenija |
Label4 | Caption | Адрес |
ListBox3 | Name | lstAdres |
CommandButton1 | Name | cmdVvodSpiskaStudentov |
| Caption | Пуск |
CommandButton2 | Name | cmdChtenieIzFaila |
Caption | Чтение из файла |
Блок-схема

Примерный интерфейс программы может выглядеть так:

Код программы:
Dim FIO As String
Dim GodRozhdenija As String
Dim Adres As String
Dim Kolichestvo As Integer
Private Sub cmdVvodSpiskaStudentov_Click()
Open "Spisok.txt" For Output As #1
Kolichestvo = InputBox("Введите количество студентов в группе",”Ввод числа”)
lblKolichestvo.Caption = Str(Kolichestvo)+” человек(а)”
For i% = 1 To Kolichestvo
FIO = InputBox("Введите фамилию студента", "Ввод данных о студенте")
GodRozhdenija = InputBox("Введите год рождения студента", "Ввод данных о студенте")
Adres = InputBox("Введите адрес студента", "Ввод данных о студенте")
Write #1, FIO; GodRozhdenija; Adres
Next
Close #1
End Sub
Private Sub cmdChtenieIzFaila_Click()
Open "Spisok.txt" For Input As #1
Do Until EOF(1)
Input #1, FIO, GodRozhdenija, Adres
lstFIO.AddItem FIO
lstGodRozhdenija.AddItem GodRozhdenija
lstAdres.AddItem Adres
Loop
Close #1
End Sub
Перед запуском программы сохраните файл под именем «Произвольный доступ»
Составьте список из 10 фамилий студентов вашей группы.
^
Задача.
Ваша группа хранит данные о результатах экзамена в файле с произвольным (прямым) доступом.
|
Файлы произвольного доступа – это провозвестники файлов баз данных. В этих типах файлов применяется особая структура данных – пользовательский тип данных. Он содержит компоненты разного типа данных.
Структуру данных (пользовательский тип данных) называют записью, а компоненты этой структуры – полями записи.
База данных – это множество единообразных записей.
Для открытия файла используется оператор
^ ИмяФайла For Random As #ДискрипторФайла 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»