На главную

.:: Меню ::.
Новости
Программы
Статьи
Полезные ссылки

Чтение и запись двоичных (бинарных файлов).

Разделы Статьи / .NET / VB.NET / Файлы и каталоги. Создание, чтение, запись. /

Назад

Использование двоичного доступа имеет ряд преимуществ при выполнении некоторых задач. Например, это дает возможность хранить информацию в особом формате, например: .zip, .mpeg или .xls. Двоичный доступ и произвольный доступ схожи между собой, только при двоичном доступе не делается никаких предположений относительно типа данных или длины записи. Поскольку двоичный доступ не требует полей фиксированной длины, в файлах с этим типом доступа можно создавать поля переменной длины. Таким образом, двоичный доступ позволяет иметь дело с файлами меньшего размера, чем произвольный доступ, так как под каждое поле будет отводиться только минимально необходимое для него место.

Чтобы открыть файл для двоичного доступа, необходимо настроить OpenMode.Binary с помощью оператора FileOpen. После открытия файла для записи в нем можно использовать те же самые функции, что и с файлом, открытым для последовательного или произвольного доступа, например FilePut и FilePutObject. Для считывания из файла используются функции FileGet и FileGetObject. Дополнительных сведения см. в разделе Типы и функции доступа к файлам.

Примечание о безопасности: При считывании из файла, нельзя судить о его содержимом только по его расширению. Например, файл с именем Form1.vb исходным файлом Visual Basic .NET может и не являться.

В следующем примере используется функция FilePut для записи строки в файл, открытый для двоичного доступа. Предполагается, что в рабочем каталоге имеется файл test.txt.

 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As_
   System.EventArgs) Handles Button1.Click
      Dim MyString As String
      Dim ReadString As String
      Dim iFr As Short
      iFr = FreeFile()
      ReadString = CurDir() & "\test.txt"
      FileOpen(iFr, ReadString, OpenMode.Binary)
      MyString = "new information"
      FilePut(MyString)
      FileClose(iFr)
   End Sub

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

   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As_
   System.EventArgs) Handles Button1.Click
        Dim MyString As String
        Dim ReadString As String
        Dim iFr As Short
        iFr = FreeFile()
        ReadString = CurDir() & "\test.txt"
        FileOpen(iFr, ReadString, OpenMode.Binary)
        MyString = New String(" ", 15)
        FileGet(iFr, MyString)
        FileClose(iFr)
        MsgBox(MyString)
   End Sub

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

 Dim myListbox As ListBox
   Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As _
   System.EventArgs) Handles Button1.Click
      Dim ReadString As String
      Dim iFr As Short
      Dim sTmp As String
      ReadString = CurDir() & "\test.txt"
      iFr = FreeFile()
      FileOpen(iFr, ReadString, OpenMode.Binary)
      sTmp = Space(FileLen(ReadString))
      FileGet(iFr, sTmp)
      FileClose(iFr)

   Dim strRecords() As String : strRecords = Split(sTmp, vbCrLf)
      'Clear the listbox
      MyListbox.Items.Clear()
      Dim lngRecord As Long
      For lngRecord = LBound(strRecords) To UBound(strRecords)
         myListbox.Items.Add(strRecords(lngRecord))
      Next lngRecord
  End Sub

Новости сайта

Друзья сайта
Русский сайт системы KooBoo CMS

PROИТ - Office 365, AD, Active Directory, Sharepoint, C#, Powershell

Хостинг предоставлен VEDU.RU - Поволжским
Образовательным
Порталом





 © Центр ИТ, СИОТО, 2002-2009. Разработчики: webmaster(a)vedu.ru