- •Лабораторная работа n 1 Знакомство со средой разработки Visual Basic
- •Лабораторная работа n 2 Знакомство со средой разработки Visual Basic
- •Лабораторная работа n 3 Ввод и вывод данных
- •Вопрос 32,
- •Лабораторная работа n 4. Константы и переменные. Оператор присваивания. Типы данных. Диапазон действия переменных и констант.
- •Лабораторная работа n 5. Стандартные функции vb. Операции. Выражения.
- •Лабораторная работа n 6 Логический тип данных. Операторы выбора. Оператор перехода.
- •Оператор множественного выбора
- •Оператор перехода
- •Лабораторная работа n 7. Циклы
- •Лабораторная работа n 8. Массивы
- •Лабораторная работа n 9. Процедуры и функции
- •Лабораторная работа n 10.
- •Фокус ввода.
- •Обработка событий, связанных с клавиатурой и мышью
- •Технология drag -and-drop.
- •Лабораторная работа n 11. Структуры. Файлы.
- •Последовательные файлы
- •Файлы произвольного (прямого) доступа.
- •Практическое занятие
- •Практическое занятие
- •Лабораторная работа n 12 Программирование графики
- •Практическое занятие
- •Лабораторная работа n 13 Разработка пользовательских объектов Практическое занятие
- •Лабораторная работа n 13 Классы.
Файлы произвольного (прямого) доступа.
В файле прямого доступа данные хранятся в виде записей постоянной длины. Это позволяет обращаться к конкретной записи по ее номеру. Переменная, которая используется для считывания данных из файла, должна иметь ту же длину, что и считываемая запись.
Запись в файл прямого доступа происходит с помощью оператора 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<имя файла>.
Имя файла в этих операторах представляет путь к файлу.