Организация доступа к данным в vb.

Виды доступа:

Последовательный доступ применяется последовательные файлы, которые состоят из текстовых строк. Для записи данных файла может быть открыт в режимах Output, Append. Если файл не существует VB создает его автоматический, если файл существует в режиме Output – удаляется, Append – добавляется в конце файла. Для чтения файла его нужно открыть в режиме Input. Для операции с файлом используется Print#, для записи файла Write#, а для чтения Input.

Последовательный файл состоит из текстовых строк ASCII-формата. Любая информация считывается или сохраняется в текстовом виде построчно. Последовательные файлы могут обрабатываться любым текстовым редактором.

Способ открытия файла с последовательным доступом (для чтения, записи или добавления) задается при вызове оператора открытия файла:

Open <ИмяФайла> For <Режим> As <Дескриптор Файла>,

где ИмяФайла определяет имя открываемого файла — это либо строка символов, заключенная в кавычки, либо выражение, значением которого является строка символов. Она представляет собой путь к открываемому файлу; режим — это режим доступа, который может иметь значения:

  • Input (Ввод) — если файл открывается для чтения из него текстовых данных;
  • Output (Вывод) — если файл открывается для записи в него данных, начиная с первой позиции. Вся имевшаяся в нем старая информация будет стерта;
  • Append (Дополнение) — если файл открывается для записи в него данных не с первой, а с конечной позиции, так что вся имевшаяся в нем старая информация будет сохранена.

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

Все открытые файлы закрываются оператором:

Close [<СписокДескрипторов>] СписокДескрипторов — это записанные через запятую дескрипторы файлов, которые должны быть закрыты. При отсутствии этого параметра будут закрыты все открытые файлы.

Print # <ДескрипторФайла>, [<СписокЗначений>] Write .# <ДескрипторФайла>, [<СписокЗначений>],

где СписокЗначений — это записанные через разделитель значения (или выражения).

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

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

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

Произвольный доступ позволяет в любой момент времени перейти к любой позиции в файле и прочитать требуемые данные. Произвольный доступ упрощает доступ к данным. Используется Tipe… End Tipe.

Открытие файлов произвольного доступа выполняется командой:

Open <ИмяФайла> For Random As #<Дескриптор-Файла> _Len = <ДлинаЗаписи>

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

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

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

Для включения в файл произвольного доступа новой записи используется оператор:

Put # <ДескрипторФайла>, <НомерЗаписи>, <ИмяПеременной>

НомерЗаписи — это номер (целое положительное число), который будет иметь запись, помещаемая в файл.

ИмяПеременной — это имя переменной пользовательского типа, значением которой является запись, помещаемая в файл.

Для извлечения записи из файла произвольного доступа применяется оперйтор:

Get # <ДескрипторФайла>, <НомерЗаписи>, <Имя-Переменной>

НомерЗаписи — это номер извлекаемой из файла записи. .

ИмяПеременной — это имя переменной пользовательского типа, значением которой является запись, извлекаемая из файла.

Двоичный доступобладает гибкостью при работе с файлом. Чтение файлов Get# , Put#. Двоичный доступ отмечен от произвольного тем, что нельзя перемещать по файлу и читать данные в другие файлы. При двоичном доступе чтения производится в виде блоков размеров в строку.

ля открытия двоичного файла применяется оператор:

Open <ИмяФайла> For Binary As # <ДескрипторФайла>

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

Запись данных в файл происходит при помощи оператора:

Put # <ДескрипторФайла>, <НомерБайта>, <ИмяПеременной>

НомерБайта — номер байта в файле, т. е. то место в файле, куда надо поместить данные.

Чтение данных из двоичного файла осуществляется оператором:

Get # <ДескрипторФайла>, <НомерБайта>, <ИмяПеременной>

НомерБайта — номер байта в файле, т. е. то место в файле, откуда надо прочитать данные.

Найти этот номер байта бывает очень трудно. В этом заключается недостаток двоичного доступа.


Наши рекомендации