Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекция «visual Basic For Application» По Информатике (Петрова В. В.).ppt
Скачиваний:
29
Добавлен:
07.10.2014
Размер:
2.43 Mб
Скачать

Формат записи оператора:

OPEN имя файла[FOR режим]As[ # дескриптор файла] где: имя файла может включать устройство и

путь поиска файла на диске; режим—для текстовых файлов одно из трёх ключевых слов:

Output — используется если файл открывается для записи с первой позиции (вся старая информация при этом уничтожается); Append — используется, если файл

открывается для продолжения записи; Input — используется, если файл

открывается для чтения из него текстовых данных.

Дескриптор файла — это любое целое число от 1 до 511, которое служит идентификатором файла в программе.

Оператор CLOSE # [список дескрипторов файлов] —закрывает все файлы, идентификаторы которых указаны в списке через запятую. Если список дескрипторов отсутствует, то закрываются все открытые в программе файлы.

•Оператор INPUT # дескриптор файла, список переменных.

•Оператор lineINPUT # дескриптор файла, список переменных.

Чаще всего чтение из текстового файла производится циклически, с помощью оператора цикла с условием: Do While ... Loop или Do Until...

Loop. Условием окончания цикла является попытка прочитать данные после чтения последней строки. Эта попытка приводит к тому, что значение функции EOF будет true.

Пример:

Запишем программу, которая помещает все фамилии, имена и даты рождения из файла ГодРождения1.txt в три окна списка ListBox экранной формы:

Private Sub Command1_Click()

Open “ГодРождения 1.txt” For Input As#1 Do Until EOF(1)

Input # 1, Фамилия$, Имя$, ГодРождения% ListBox1. Addltem Фамилия$

ListBox2. Addltem Имя$

ListBox3. Addltem ГодРождения% Loop

Close # 1

End Sub

Записывать данные в текстовый файл можно

двумя способами с помощью операторов Write и Print. Оба оператора записывают данные в файл текстовыми строками. Текстовая строка — это последовательность символов, заканчивающаяся знаком "конец строки" (код = 26) или знаком возврата каретки (код в таблице символов = 13) и "перевода строки" (код = 10) .

Синтаксис операторов записи в текстовый файл одинаков:

Write # дескриптор файла, [список значений] Print # дескриптор файла, [список значений].

Список значений — это записанные через разделитель значения. В операторе Write элементы этого списка записываются в одну текстовую строку файла через запятую. Элементы типа String заключаются в кавычки.

В операторе Print, если разделитель точка с запятой, то значения будут записаны подряд, без промежутков между ними, а, если разделитель запятая, то значения будут записываться в 14- символьные зоны вывода.

Пример результата для оператора Write:

“Иванов”,”Иван”, 1986 “Петров”,”Петр”, 1984 “Сидоров”,”Николай”, 1985

Пример результата для оператора Print:

Иванов Иван 1986 Петров Петр 1984 Сидоров Николай 1985

Функция Input — это функция двух аргументов, где первый аргумент — это количество символов, которые надо прочесть, а второй дескриптор файла.

В качестве примера запишем программу, которая помещает в объект Text1 класса Текстовое поле число, определяющее размер файла ГодРождения1

.txt.

Open “ГодРождения.txt” For Input As # 1

Dim ЧислоСимволов As Integer

ЧислоСимволов = LOF(1)

Text 1.Text = Input(ЧислоСимволов, # 1)

Close # 1

Разработать приложение, в котором необходимо: создать список группы студентов с указанием их фамилии, имени и оценки по информатике путем заполнения файла последовательного доступа, используя окно ввода, предусмотреть просмотр введенного файла и подсчет среднего балла.

При чтении файла его содержимое будет помещено в текстовое окно, а запись в файл будет осуществляться с помощью оператора Write. После ввода очередной фамилии, имени и оценки будет появляться окно сообщения MsgBox с двумя кнопками Yes, No и вопросом "Продолжить ввод?". При нажатии на кнопку Yes цикл будет продолжен, а при нажатии на кнопку No – прекращен. На форму надо поместить 4 командные кнопки Создание файла, Чтение из файла, Средний балл, Выход, текстовое поле TextBox, 3 метки для поясняющего текста к полю TextBox, вывода подсчитанного среднего балла и вывода фамилии и группы студента. Поскольку текстовое поле предназначено для вывода содержимого файла, содержащего несколько строк, необходимо предварительно изменить некоторые его свойства: Text – удалить имя Text1, MultiText – установить значение True, ScrollBars – установить значение Vertical (см. рис.).

Программный код для приложения можно

записать так:

Private Sub Command1_Click() ' Кнопка Создание файла

Dim fam As String, im As String, ball As Integer Open "D:\Students\ДЭм11\Группа2.txt" For_ Output As 2

Do

fam = InputBox("Ввод фамилии", "Создание файла")

im = InputBox("Ввод имени", "Создание файла")

ball = Val(InputBox("Ввод оценки по информатике", "Создание файла"))

Write #2, fam, im, ball

ans = MsgBox("Продолжить ввод?",vbQuestion + _ vbYesNo, "Создание файла")

Loop Until ans = vbNo Close #2

End Sub

Private Sub Command2_Click()

'

Кнопка

Чтение из файла

 

 

 

Dim kol_sym As Integer

 

For _

Open "D:\Students\ДЭм11\Группа2.txt"

Input As 2

' Количество символов в

kol_sym = LOF(2)

файле

 

 

 

Text1.Text = Input(kol_sym, #2) Close #2

End Sub

Private Sub Command3_Click() 'Кнопка Средний балл

Dim fam As String, im As String, ball As Integer, _ kol As Integer, _

sum As Integer, sr As Single

Open "D:\Students\ДЭм11\Группа2.txt" For _ Input As 2

kol = 0: sum =0

Do Until EOF(2)

Input #2, fam, im, ball kol = kol + 1

строк в файле

sum = sum + ball баллов

Loop

'Подсчет количества

'Подсчет суммы

sr = Round(sum / kol, 2) ' Подсчет среднего балла и округление его до 2 цифр

' в дробной части Label1.Caption = "Средний балл=" & sr Close #2

End Sub

Результат работы приложения представлен на рис. 5.2.

Соседние файлы в предмете Информатика