Типизированные файлы

Работа с файлами в VB

Примеры на работу с массивами

 

Задача 1. Определить число слов в тексте, если между словами один пробел.

 

Dim strA, strB As String

Dim intk, intl, inti As Integer

 

Private Sub cmd1_Click()

strA = txt1.Text

intl = Len(strA)

intk = 1

For inti = 1 To intl

strB = Mid(strA, inti, 1)

If strB = " " Then intk = intk + 1

Next inti

txt2.Text = CStr(intk)

End Sub

 

Private Sub cmd2_Click()

End

End Sub

 

Задача 2. Дана матрица n x m, элементы которой вводятся с клавиатуры. В матрице поменять местами первый и последний элементы и вычислить сумму элементов первого столбца.

 

Dim intN, intM, intI, intj As Integer

Dim strIJ As String

Dim arrA() As Single

Dim sngp, sngs As Single

 

Private Sub cmd2_Click()

End

End Sub

 

Private Sub cmd1_Click()

Cls

intN = Val(txt1.Text)

intM = Val(txt2.Text)

ReDim arrA(1 To intN, 1 To intM)

Print

Print "Исходные данные"

For intI = 1 To intN

For intj = 1 To intM

strIJ = InputBox("Ввод элемента a" & intI & intj & " :", "Ввод массива")

arrA(intI, intj) = CSng(strIJ)

Print arrA(intI, intj);

Next intj

Print

Next intI

sngp = arrA(1, 1)

arrA(1, 1) = arrA(intN, intM)

arrA(intN, intM) = sngp

Print

Print "Первый и последний элементы поменялись местами"

For intI = 1 To intN

For intj = 1 To intM

Print arrA(intI, intj);

Next intj

Print

Next intI

sngs = 0

For intI = 1 To intN

sngs = sngs + arrA(intI, 1)

Next intI

Print "Сумма элементов первого столбца ="; sngs

End Sub

 

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

- типизированные файлы (двоичные);

- текстовые;

- нетипизированные (файлы записей).

 

Содержимое таких файлов рассматривается как последовательность произвольных данных, которые представлены в двоичном виде. К достоинствам этого вида относится экономичность при хранении информации.

С понятием типизированного файла тесно связано понятие указателя на текущий элемент файла, то есть при работе с двоичным файлом в любой момент времени один из элементов файла является “активным”, т.е. с ним могут производиться какие-либо действия.

Все операции с файлами осуществляются поэлементно, причем указатель может быть перемещен на заданное количество байт в любом направлении по содержимому файла. Каждый элемент двоичного файла имеет свой порядковый номер, по которому к нему следует обращаться ( нумерация начинается с 1). В типизированных файлах может храниться любая информация, однако каждый хранящийся элемент занимает определенное количество байт, поэтому при его извлечении необходимо использовать переменные соответствующего типа, чтобы данные были корректно обработаны. Следует точно знать, элементы каких типов и в каком порядке хранятся в двоичном файле, т.е. где расположен каждый элемент и сколько байт он занимает.

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

Любой файл создается или открывается при помощи оператора Open, синтаксис которого зависит от его разновидности. Для двоичных файлов:

Open путь For Binary As номер

Здесь:

Open – служебное слово, используемое при открытии или создании файла;

путь – строка или переменная типа String, содержимым которой является полный путь к требуемому файлу;

For – ключевое слово для определения типа файла;

Binary – служебное слово, используемое при создании или открытии двоичного файла;

As – ключевое слово для определения переменной, содержащей файловый номер, посредством которого будет в дальнейшем осуществляться обработка файла;

номер – имя переменной, содержащей номер файла .

В качестве параметра путь может быть указано только имя файла, в этом случае работа с файлами будет происходить в том каталоге, который по умолчанию является рабочим каталогом Visual Basic.

По окончании работы с любым файлом его необходимо закрыть при помощи оператора Close, синтаксис которого одинаков для любого типа файлов:

Close номер

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

Переменная-номер=FreeFile

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

Put номер, позиция, переменная

Здесь:

номер – переменная, которая содержит файловый номер;

позиция – порядковый номер байта, начиная с которого будет заноситься информация;

переменная – название переменной, содержимое которой записывается в файл.

Для извлечения информации из файла применяется оператор Get:

Get номер, позиция, переменная

При выполнении оператора Get в переменную заносится информация из файла с указанным номером, расположенная в нем по адресу позиция. Перед номером файла можно указать знак #.

Чтобы определить порядковый номер обрабатываемого элемента, следует применять функцию Seek, результатом которой будет текущая позиция, которую занимает указатель в файле с заданным номером:

Seek (номер)

Типизированные файлы обычно используют для хранения числовых данных.