Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции_VB.doc
Скачиваний:
10
Добавлен:
01.04.2025
Размер:
1.16 Mб
Скачать

Работа с файлами в 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

Результаты работы программы:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]