
- •Уфимский государственный нефтяной технический университет
- •Основные типы алгоритмических структур
- •Программирование на Microsoft Visual Basic 6.0
- •Основные термины Visual Basic
- •Разработка приложений в vb6
- •Разработка программного кода Тип, имя и значение переменной в Visual Basic
- •Функции в языке vb
- •Ввод, вывод
- •Конструкции управления
- •Графические возможности языка vb
- •Анимация
- •Общие процедуры. Область видимости процедур
- •Работа с массивами
- •Работа с файлами в vb
- •Основы объектно-ориентированного визуального программирования
- •Классы объектов, экземпляры класса и семейства объектов
- •Свойства объектов
- •Методы объектов
- •События
- •Visual Basic. Среда разработки приложения
- •Элементы управления и их свойства
- •Font(Шрифт) –выдает диалоговое окно, в котором можно устанавливать имя шрифта для метки, начертание и размер.
- •Текстовые окна (элементы Text Box)
- •Командная кнопка
- •Переключатель
- •Комбинированный список
- •Линейки прокрутки
- •Графические элементы управления
- •Меню пользователя
- •Стандартные диалоговые окна
- •Работа с фокусом
- •Работа с буфером обмена в vb
- •Работа с мышью
- •Использование клавиатуры
Работа с файлами в vb
Файлом называется область на жестком диске или другом машинном носителе, имеющая название и содержащая определенную информацию. При работе с файлами возможны такие операции, как считывание информации в переменные программы и занесение данных из переменных в файлы. Существуют несколько разновидностей файлов, которые определяют формат хранения данных и особенности программного доступа к ним:
типизированные файлы (двоичные);
текстовые;
нетипизированные (файлы записей).
Типизированные файлы
Содержимое таких файлов рассматривается как последовательность произвольных данных, которые представлены в двоичном виде. К достоинствам этого вида относится экономичность при хранении информации.
С понятием типизированного файла тесно связано понятие указателя на текущий элемент файла, то есть при работе с двоичным файлом в любой момент времени один из элементов файла является “активным”, т.е. с ним могут производиться какие-либо действия.
Все операции с файлами осуществляются поэлементно, причем указатель может быть перемещен на заданное количество байт в любом направлении по содержимому файла. Каждый элемент двоичного файла имеет свой порядковый номер, по которому к нему следует обращаться ( нумерация начинается с 1). В типизированных файлах может храниться любая информация, однако каждый хранящийся элемент занимает определенное количество байт, поэтому при его извлечении необходимо использовать переменные соответствующего типа, чтобы данные были корректно обработаны. Следует точно знать, элементы каких типов и в каком порядке хранятся в двоичном файле, т.е. где расположен каждый элемент и сколько байт он занимает.
Обработка любого файла начинается с его открытия, а при окончании работы с файлом его необходимо закрыть. Во время работы приложения могут быть одновременно открыты несколько файлов, поэтому чтобы не возникало путаницы при обращении к ним, с каждым из файлов в программе отождествляется специальная переменная, называемая файловым номером и определяющая его положение в списке открытых в данный момент файлов. Все операции по обработке файлов в программе выполняются посредством обращения к соответствующим файловым номерам.
Любой файл создается или открывается при помощи оператора Open, синтаксис которого зависит от его разновидности. Для двоичных файлов:
Open путь For Binary As номер
Здесь:
Open – служебное слово, используемое при открытии или создании файла;
путь – строка или переменная типа String, содержимым которой является полный путь к требуемому файлу;
For – ключевое слово для определения типа файла;
Binary – служебное слово, используемое при создании или открытии двоичного файла;
As – ключевое слово для определения переменной, содержащей файловый номер, посредством которого будет в дальнейшем осуществляться обработка файла;
номер – имя переменной, содержащей номер файла .
В качестве параметра путь может быть указано только имя файла, в этом случае работа с файлами будет происходить в том каталоге, который по умолчанию является рабочим каталогом Visual Basic.
По окончании работы с любым файлом его необходимо закрыть при помощи оператора Close, синтаксис которого одинаков для любого типа файлов:
Close номер
Если в программе открыто несколько файлов, то для каждого из них определен свой номер. Для определения первого свободного номера для очередного открываемого файла следует использовать функцию FreeFile, результат выполнения которой присваивается переменной-номеру :
Переменная-номер=FreeFile
При работе с открытым файлом возможно выполнение двух операций: занесение данных и считывание информации. Для записи в двоичный файл информации используют оператор Put:
Put номер, позиция, переменная
Здесь:
номер – переменная, которая содержит файловый номер;
позиция – порядковый номер байта, начиная с которого будет заноситься информация;
переменная – название переменной, содержимое которой записывается в файл.
Для извлечения информации из файла применяется оператор Get:
Get номер, позиция, переменная
При выполнении оператора Get в переменную заносится информация из файла с указанным номером, расположенная в нем по адресу позиция. Перед номером файла можно указать знак #.
Чтобы определить порядковый номер обрабатываемого элемента, следует применять функцию Seek, результатом которой будет текущая позиция, которую занимает указатель в файле с заданным номером:
Seek (номер)
Типизированные файлы обычно используют для хранения числовых данных.
Текстовые файлы
Содержимым текстовых файлов является последовательность строк произвольной длины, которые были созданы при помощи какого-либо текстового редактора. При этом в конце строки находится особое сочетание символов, которое обозначает ее окончание и состоит из “возврата каретки” (код в таблице символов =13) и “перевода строки”(код =26).
Операции с текстовыми файлами выполняются построчно, при этом после обработки очередной строки указатель автоматически перемещается на следующую строку. Если в ходе выполнения программы необходимо проверять достижение конца файла, то следует применять функцию Eof(номер), результатом которой является логическое значение (True или False).
Для того, чтобы открыть текстовый файл, используется оператор Open следующего формата:
Open путь For назначение As номер
Здесь, в качестве назначения для открываемого файла используются:
Input – файл открывается для считывания из него информации;
Output – файл открывается для редактирования его содержимого;
Append – файл открывается для добавления новых строк.
При использовании в операторе Open ключевого слова Input открываемый файл должен существовать, служебные слова Output и Append можно применять как для открытия, так и для создания текстовых файлов. При этом, если файл уже открыт для извлечения данных (Input), то для добавления строк его необходимо вначале закрыть (Close), а затем открыть с указанием соответствующего назначения (Append).
Для добавления новых строк в файл используется оператор Print, формат которого следующий:
Print #номер, переменная
При выполнении данного оператора в конец файла с указанным номером, открытого при помощи ключевого слова Append, будет добавлена новая строка из переменной.
Для изменения содержимого имеющегося текстового файла его необходимо вначале открыть с помощью служебного слова Output, а затем воспользоваться оператором Print. В этом случае изменения будут внесены в начало файла.
Для занесения в программные переменные строк из файла используется оператор Line Input:
Line Input #номер, переменная
Для извлечения в строковую переменную заданного количества символов из файла используется функция Input, результатом которой является указанное число символов, скопированных из файла с определенным номером:
Input(число , номер)
Нетипизированные файлы
Информация в таких файлах хранится в виде набора одинаковых записей определенной структуры. Размер одной записи является значением суммы размеров всех ее полей.
Для открытия файла записей используется оператор Open, в котором необходимо указать размер записей, которые содержатся в файле:
Open путь [For Random] As номер Len=размер
Для занесения записей в файл используется оператор Put, для извлечения – оператор Get , как и при работе с двоичными файлами, под позицией понимается порядковый номер записи в нетипизированном файле.
ПРИЛОЖЕНИЕ 1
Интерфейс:
Программный код.
Dim sngX As Single, sngY As Single, sngZ As Single
Private Sub cmd1_Click()
sngX = CSng(txt1.Text)
sngY = CSng(txt2.Text)
sngY = sngX ^ 2 + sngY ^ 2
txt3.Text = CStr(sngY)
End Sub
Private Sub cmd2_Click()
End
End Sub
Результаты работы программы:
ПРИЛОЖЕНИЕ 2
Интерфейс:
Программный код.
Dim sngX As Single, sngY As Single
Private Sub cmd1_Click()
sngX = CSng(txt1.Text)
If sngX < 0 Then
sngY = -1
Else
If sngX = 0 Then
sngY = 0
Else
sngY = 1
End If
End If
lbl2.Caption = "При X= " & sngX & " y= " & sngY
End Sub
Private Sub cmd2_Click()
End
End Sub
Результаты работы программы:
ПРИЛОЖЕНИЕ 3
Интерфейс:
Программный код.
Dim sngX As Single, sngY As Single
Dim sngA As Single, sngB As Single, sngH As Single
Private Sub cmd2_Click()
sngA = CSng(txt1.Text)
sngB = CSng(txt2.Text)
sngH = CSng(txt3.Text)
For sngX = sngA To sngB Step sngH
sngY = sngX ^ 2
Print " X= " + Format(sngX, "#0.0#"); " Y=" + Format(sngY, "#0.0#")
Next sngX
End Sub
Private Sub cmd1_Click()
End
End Sub
Результаты работы программы:
ПРИЛОЖЕНИЕ 4
Интерфейс:
Программный код.
Dim intI As Integer, sngS As Single, sngA As Single
Private Sub cmd1_Click()
intI = 0
sngS = 0
sgnA = intI ^ 3 / (intI + 1)
Do While sgnA <= 10
sgnS = sgnS + sgnA
intI = intI + 1
sgnA = intI ^ 3 / (intI + 1)
Loop
txt1.Text = Left(Str(sgnS), 7)
End Sub
Private Sub cmd2_Click()
End
End Sub
Private Sub Form_Load()
frmWhile.Move (Screen.Width - frmWhile.Width) / 2, (Screen.Height - frmWhile.Height) / 2
End Sub
Результаты работы программы: