- •08080101 (Дисциплина опд. Ф.04 – лекции: 18 часов),
- •1. Понятие о визуальном программировании (2 часа)
- •2. Структура программы на Visual Basic .Net (1 час)
- •Imports имя_класса
- •3. Работа с переменными в Visual Basic .Net (2 часа)
- •4. Работа с формами в Visual Studio .Net (2 часа)
- •5. Элементы управления в формах (2 часа)
- •6. Дополнительные элементы управления (2 часа)
- •7. Работа с меню в Visual Studio .Net (2 час)
- •8. Создание многооконных приложений в Visual Basic .Net (1 час)
- •9. Работа с файлами данных в Visual Studio .Net (2 часа)
- •10. Печать в Visual Basic .Net (2 часа)
- •Глоссарий
9. Работа с файлами данных в Visual Studio .Net (2 часа)
Для работы с бинарными файлами используется объект FileStream, создающий канал связи с файлом. Для чтения из файла используется объект BinaryReader, для записи в файл – объект BinaryWriter. Аналогично, для текстовых файлов используются объекты StremReader и StreamWriter соответсвенно.
Эти объекты не наносятся на форму а динамически создаются в ходе работы приложения, поэтому они отсутствуют на панели инструментов ToolBox.
Порядок действий по чтению данных из файла следующий:
открыть файл;
открыть поток чтения данных из файла;
создать объект BinaryReader или StreamReader;
прочесть данные;
закрыть поток чтения данных из файла.
Объект FileStream создается со следующими атрибутами:
FileStream(имя файла, вид работы с файлом, операции с файлом).
Имя файла должно быть полным, т.е. включать в себя все вложенные папки. Рекомендуется получать имя файла с помощью элемента OpenFileDialog. Для чтения данных из файла используются методы ReadInt32, ReadSingle и другие, для каждого типа переменной используется свой метод. Для чтения данных из текстовых файлов используются следующие методы объекта StreamReader:
Read(массив, начало, количество символов) – считывает заданное количество символов в символьный массив, начиная с аргумента, указанного в позиции начало. Если данный метод не имеет аргументов, то просто считывается очередной символ;
ReadLine – считывает очередную строку из текстового файла;
ReadToEnd – считывает все данные из текстового файла.
Рассмотрим пример. Пусть имя файла определено с помощью объекта OpenFileDialog и помещено в переменную Fil. Необходимо прочитать из этого файла значения переменных La и Ca типа Single, и значения переменных N и L типа Integer. Код, реализующий эти операции, следующий:
Dim Fil As String
Dim La, Ca As Single
Dim N, L As Integer
Fil = OpenFileDialog1.FileName
OpenFileDialog1.OpenFile()
Dim BR As BinaryReader
Dim FS As FileStream
FS = New FileStream(Fil, FileMode.Open, FileAccess.Read)
BR = New BinaryReader(fs)
La = BR.ReadSingle
Ca = BR.ReadSingle
N = BR.ReadInt32
L = BR.ReadInt32
BR.Close()
FS.Close()
Для чтения всех данных из текстового файла можно использовать следующий код (имя файла также определяется с помощью объекта OpenFileDialog и помещается в переменную Fil):
Dim Fil As String
Dim Txt As String
Fil = OpenFileDialog1.FileName
OpenFileDialog1.OpenFile()
Dim SR As StreamReader
Dim FS As FileStream
FS = New FileStream(Fil, FileMode.Open)
SR = New StreamReader(fs)
Txt=SR.ReadToEnd
SR.Close()
FS.Close()
Порядок действий по записи данных в файл следующий:
создать файл или открыть существующий файл;
создать поток записи данных в файл;
создать объект BinaryWriter или StreamWriter;
записать данные в файл;
закрыть поток записи в файл.
Для записи данных в файл используется метод Write объекта BinaryWriter. Данный метод является общим для всех типов переменных. Для записи данных в текстовый файл используются следующие методы объекта StreamWriter:
Write(Data) – записывает данные, указанные в аргументе Dara, в файл. Этот метод может применяться для данных любых типов, кроме типа Data. Для записи дат их необходимо предварительно преобразовывать в строки;
WriteLine(Data) – записывает очередную строку в файл.
Рассмотрим пример. Пусть имя файла определено с помощью объекта SaveFileDialog и помещено в переменную Fil. Требуется записать в этот файл значения переменных La и Ca типа Single и переменных N и L типа Integer. Код, реализующий эти операции, следующий:
Dim Fil As String
Dim La, Ca As Single
Dim N, L As Integer
Fil = Savefiledialog1.FileName
Dim BW As BinaryWriter
Dim FS As FileStream
FS = New FileStream(Fil, FileMode.OpenOrCreate, FileAccess.ReadWrite)
BW = New BinaryWriter(FS)
BW.Write(La)
BW.Write(Ca)
BW.Write(N)
BW.Write(L)
BW.Close()
FS.Close()
Аналогично осуществляется запись в текстовые файлы. Текстовые файлы по умолчанию сохраняются в кодировке UTF-8. Кроме неё, в Windows имеется ещё три вида кодировки. Если необходимо использовать другую кодировку, следует добавить соответствующий аргумент к объекту StreamWriter:
StreamWriter(объект FileStream,вид кодировки).
Также можно выделить следующие методы объекта FileStream:
Lock(позиция, длина) – блокирует открытый файл или его часть с заданной позиции заданной длины;
Seek(смещение, позиция) – устанавливает текущую позицию в файле путём смещения относительно заданной позиции. Константа позиция имеет следующие значения: Begin (смещение относительно начала файла), Current (смещение относительно текущей позиции в файле), End (смещение относительно конца файла).
Следует отметить, что объекты чтения из записи из файлов принадлежат к базовому классу System.IO, поэтому этот класс необходимо предварительно импортировать в проект.