Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
LABVB10.doc
Скачиваний:
33
Добавлен:
16.03.2016
Размер:
704 Кб
Скачать

Файлы произвольного (прямого) доступа.

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

Запись в файл прямого доступа происходит с помощью оператора FilePut:

FilePut (FileNumber As Integer, Value As <тип>, Optional RecordNumber As Integer = -1)

Чтение из файла прямого доступа происходит с помощью оператора FileGet:

FileGet(FileNumber As Integer, Value As <тип>, Optional RecordNumber As Integer = -1)

Здесь

FileNumber – номер файла,

Value – имя переменной, значение которой пишется в файл или в которую читаются данные из файла,

RecordNumber – номер записи (режим Random) или номер байта (режим Binary), с которых начинается запись или чтение данных.

Установка этого номера производится с помощью функции Seek:

Seek (FileNumber, RecordNumber).

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

Номер текущей записи можно получить с помощью функции

Seek (FileNumber).

Пример работы с файлом прямого доступа.

Dim i, a, b As Integer

'открыть файл для чтения/записи в режиме прямого доступа

FileOpen(1, "C:\Projects\ MyFiledir.txt", OpenMode.Random)

For i = 1 To 9

a = 2 * i

FilePut(1, a, i)

Next

FileClose(1)

FileOpen(1, "C:\Projects\ MyFiledir.txt", OpenMode.Random)

i = -1

While Not EOF(1)

i += 2

Seek(1, i)

FileGet(1, b)

TextBox1.Text &= " " & b

End While

FileClose(1)

Основные операции с файлами.

Чтобы избежать потери информации или аврийного прерывания выполнения программы необходимо перед выполнением операций с файлом убедиться в его существовании (отсутствии) и выполнить необходимые действия.

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

Для этого нужно

  • импортировать пространство имен System. IO (аналогично тому как мы импортировали пространство имен System.Math),

  • создать экземпляр класса FileInfo:

Dim FileInfo As New FileInfo(fileName)

Очевидно, к этому моменту значение переменной filename должно быть задано. Для этого необходимо указать полный путь к файлу, используя метод GetFullPath класса Path:

Dim fileName As String = Path.GetFullPath("h:\Рабочий стол\Moя папка/Мой файл.txt")

(Эти объявления делаются в разделе общих объявлений).

В нужном месте программы осуществляем проверку:

If fileInfo.Exists() Then

' делаем, что надо: читаем и т.д.

Else

‘ обращаемся за помощью к элементу управления OpenFileDialog

End If

Создадим процедуру для открытия файла с помощью диалогового окна OpenFileDialog.

Предварительно укажем (если помним!) имя папки, или хотя бы имя диска, или вообще опускаем следующий оператор:

OpenFileDialog1.InitialDirectory = "h:\Рабочий стол\ Моя папка" ,

Затем делаем видимым окно:

OpenFileDialog1.ShowDialog().

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

FileOpen(1, OpenFileDialog1.FileName.ToString, OpenMode.Append).

Для сохранения файла используем диалоговое окно SaveFileDialog, работа с которым аналогична работе с OpenFileDialog.

Копирование файла осуществляется с помощью метода

File.Copy:

File.Copy(<имя первого файла>, <имя второго файла>,<owerwrite>)

Параметр owerwrite определяет, можно ли переписывать файл, если он уже существует; в этом случае значение параметра должно быть равно true.

Если этот параметр опущен, то перезапись невозможна. Если файл назначения существует и параметр owerwrite не принимает значение true, будет генерироваться ошибка.

Переименование файла – Name<старое имя> As <новое имя>

Удаление файла –Kill<имя файла>.

Имя файла в этих операторах представляет путь к файлу.

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