Реферат: Програмирование на Visual Basic
Изменения значения аргумента в вызываемой процедуре или в функции не ведут к изменению аргумента в вызывающей процедуре или в функции (вызываемая процедура или функция использует для аргумента другую ячейку или область памяти аналогично локальным данным). Это удобно, если модификация данных необходима только внутри вызываемой процедуры или функции и нет необходимости передавать измененные данные обратно в вызывающую процедуру или функцию.
Вместе с тем передача по значению (выделение дополнительной памяти) приводит к неэффективному использованию памяти. В связи с этим, для строк символов и массивов нецелесообразно использовать передачу по значению.
3.6.4. Использование в качестве аргументов процедур и функции форм и элементов управления
Список аргументов процедур и функций может включать имена форм и элементов управления (в качестве описателей типа для них применяются соответственно Form и Control ). Это позволяет создавать универсальные алгоритмы для работы с формами и управляющими элементами. Например, для привлечения внимания пользователя к одной из управляющих кнопок формы можно создать одну универсальную процедуру, изменяющую шрифт и цвет фона,
Sub Att^ntio!-. ‘:3^;’. As Control;
Btn. i-‘onrl t.^ г.: ^ True
Bin.BackColor = Red
'костанта Red определена в файле CONSTANT.TXT End Sub
аргументом которой является имя кнопки. Обращение к данной процедуре с указанием в качестве значения имени какой-либо конкретной кнопки приведет к изменению ее шрифта и цвета (указывается имя кнопки Btn_Right)
Attention Btn_Riqht
Для контроля соответствия передаваемых при обращении типов форм и элементов управления в Visual Basic есть специальный оператор
If TypeOf имя объекта Is тип объекта Then
где TypeOf и Is — ключевые слова, а последующий синтаксис и действие совпадают с рассмотренным выше условным оператором.
Чтобы проверить соответствие передаваемого в процедуру объекта, в ее текст можно включить оператор
Sub Attention (Btn As Control)
If TypeOf Btn Is OptionButton Then
Btn.Fontltaiic = True
Btn.BackColor = Red
End If End Sub
Пример программы.
Создадим процедуру для изменения свойств формы, аргументом которой является имя формы, и процедуры обработки событий Click для задания исходных свойств формы и KeyPress, в которой имеется обращение к процедуре Change (рис. 3.21)
При запуске программы появляется исходная форма. Щелчок мыши по форме изменяет ее размер, положение и выводит начальную часть текста (задается в процедуре обработки события Click).
. Нажатие клавиши Enter приводит к изменению размера, положения формы и вывод заключительной части текста (обращение в процедуре обработки события KeyPress к процедуре Change) (рис. 3.22).
3.7 ФАЙЛОВЫЙ ВВОД-ВЫВОД
Архитектура современных компьютеров предусматривает наличие оперативной и внешней памяти. В оперативной памяти находятся выполняемая в данный момент программа и обрабатываемые ею данные. После выполнения программы ее данные в оперативной памяти не сохраняются, так как используемые ячейки памяти выделяются для данных другой программы. Технически и программно обусловленные ограниченность объема
оперативной памяти и ее относительно высокая стоимость не позволяют применять ее для постоянного хранения больших объемов информации. Для этого используется внешняя память (магнитные ленты, жесткие и гибкие магнитные диски, лазерные диски), позволяющие хранить сотни мегабайт (1 Мбайт = 1048576 байт) и гигабайт (1 Гбаит = 1.073.741.824 байт) информации и стоимость которых относительно невелика.
Хранение больших объемов информации на внешних носителях с учетом того, что время доступа к данным на внешних носителях на один, два порядка ниже времени доступа к данным в оперативной памяти, требует их хорошо продуманной организации. А возможность альтернативного хранения одних и тех же данных на различных внешних носителях требует использования единых принципов организации данных.
Таким универсальным понятием является файл (набор данных), который используется для работы с внешними данными на любом носителе. Под файлом понимается совокупность данных. Файл состоит из записей. Запись состоит из логически связанных данных, которые передаются между оперативной и внешней памятью за одну операцию ввода-вывода (ввод — передача данных из внешней в оперативную память, вывод - передача данных из оперативной во внешнюю память).
Например, в качестве файла можно рассматривать и используемую ранее колоду перфокарт. Одна карта является одной записью (устройство ввода перфокарт считывает последовательно по одной карте и нельзя считать меньше, чем одну карту). Запись характеризуется длиной (рассмотренная перфокарта является записью фиксированной длины в SO байтов и на ней можно было разместить 80 символов). Записи бывают фиксированной или переменной длины.
По способу доступа к записям файлы подразделяются на файлы последовательного и прямого доступа. При последовательном доступе для доступа к какой-либо записи должны быть пройдены все предыдущие записи, при прямом можно напрямую перейти к нужной записи. Все внешние устройства позволяют использовать последовательный доступ к записям файла. Прямой доступ позволяют использовать только устройства прямого доступа (например, магнитные и оптические диски).
В Visual Basic файлы подразделяются на:
- последовательные (sequential), записи которых могут быть переменной длины;
- прямого доступа (random access), записи которых могут быть только одинаковой длины;
- двоичные (Ьупагу) файлы с произвольной группировкой байтов, что позволяет организовать гибкий доступ к данным.
3.7.1. Последовательные файлы
Каждая запись последовательного файла представляет собой строку символов, в конце которой содержится символ <CR>, обозначающий переход к началу строки (carriage return, ASCII-код равен 13), и <LF>, обозначающий переход на другую строку (line feed, ASCII-код равен 10). Последовательное действие этих двух символов обеспечивает переход к новой записи. После последней записи записывается признак конца файла (end of file), который может проверяться встроенной функцией EOF (возвращает значение True. если обнаружен конец файла, и False, в противном случае).
Для получения доступа к файлу для операции ввода-вывода используется оператор открытия файла, синтаксис которого следующий
Open имя_файла For Append Input As #номер_фаила fLen = размер буфера памяти}
где Open, For. Append. Input. Output, As — ключевые слова.
Input — файл открывается для ввода.
Output — файл открывается для вывода.
Append — устанавливает считывающе-записывающее устройство на конец файла и выводимая информация записывается в файл после существующих записей (при значении параметра Output выводимая информация записывается с начала файла, т.е. происходит перезапись файла, если в нем существовали записи).
Имя_файла — имя файла (символьная константа или переменная) или путь. Имя файла в DOS и Windows 3.1 состоит из не более чем восьми буквенных (латинских) или цифровых символов (первый символ буква), за которым может следовать расширение, определяющее тип файла (VBPART3.DOC, Project. MAC). В Windows 95 допускаются длинные имена файлов до 255 символов, включая специальные символы (в русской версии для записи имени файла можно использовать русские буквы) Путь определяет местонахождение файла в иерархической системе каталогов (C:\CONF1G.SYS, C:\WINDOWS\VB).
Номер файла — целочисленное выражение, значение которого должно лежать в диапазоне от 1 до 255 (присваиваемый файлу номер).
Len — определяет размер буфера операций ввода-вывода (по умолчанию 512 Кб).
Примеры:
Open “С:\CONFIC.SYS” For Input As tt5 'открывается
файл с именем CONFIG.SYS в директории С: для ввода
и ему присваивается номер 5
Doc$ = “a:\Utilits\NC.DOC”
присвоение значения константе
Open Doc$ For Input A.s ft 5
'открытие файла NC.DOC на диске А: в директории Utilits для ввода, файлу присваивается номер 2
Open “Resulc. t:-:t “ For Output As tt7
'открытие файла для вывода.
Если открывается для вывода несуществующий файл. то он создается при значениях параметров Append и Output. Если для ввода открывается несуществующий файл, то Visual Basic сообщает об ошибке. Если файл скрывается для вывода Visual Basic всегда создает новый файл, перезаписывая в него любой имеющийся на диске файл с тем же именем.
Существование файла перед открытием можно проверить с помощью встроенной функции Dir$ (возвращает строку с копией имени файла, если указанный файл существует, либо пустую строку в противном случае).
Пример.
If Dir$(“FilePrim.Txt”) <> “” Then
.Open “FilePrim.Txt” For Input As #12
End If
После завершения операций ввода — вывода файл должен быть закрыт. Для этого используется оператор
Close #номер_фачла где Close — ключевое слово;
номер_ файла соответствует номеру в операторе Open.
Для ввода информации из последовательного файла используется оператор
Line Input #номер_файла, имя_переменной где Line Input — ключевое слово;
номер_файла — номер файла, совпадающий с номером в операторе Open (вводится информация из открытого файла);
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37