Назад к списку примеров
 

Работа с файлами

Наверно не существует такой программы, которая б не использовала во время своей работы файлы. Сегодня я расскажу о том, как работать с файлами в среде Visual Basic. Для начала разберемся, на какие типы разделяются файлы. Всего типов три: это файлы последовательного доступа (на пример текстовые файлы блокнота), произвольного доступа (файлы баз данных, например Access’а) и бинарные файлы, которые по-русски называются двоичными (файлы рисунков, мультимедиа файлы, приложения и т.д.). В данной статье разберемся с файлами последовательного и произвольного доступа (бинарные оставим на потом).
Начнем, пожалую, с последовательных. Что мы можем делать с ними? Во первых записывать и считывать. Для начала, ради удобства, объявим в разделе
General Declarations константу File которой присвоим значения пути и имени файла:

  Private Const File As String = "C:\Windows\Рабочий Стол\file1.tmp" 

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

  Open File For Input as #1
  '
Чтение
  Open File For Output as #1
  '
Запись
  Open  File For Append as #1
  '
Добавление 

#1 - специальный идентификатор (может принимать любое целочисленное значение), который мы в дальнейшем будем использовать для обращения к файлу.
Допустим, мы окрыли файл для чтения (Input). Считывать можно побайтно или построчно. Для побайтного считывания служит функция Input(). Синтаксис функции таков: Input (количество_байт, идентификатор_файла). Например, для считывания всего файла нужно писать так:

  a=Input(FileLen(File), #1) 

Функция FileLen() возвращает длину файла (или количество символов в файле). Возникает вопрос: количество байт мы указали, а с какого байта начинается считывание? Это зависит от того, сколько до этого байт мы считали. Например, сразу после открытия считывание будет происходить с первого, если мы уже считали, допустим, десять байт, то следующий раз считывание начнется с одиннадцатого байта. Можно вручную переходить на какую-либо позицию в файле, для этого существует оператор Seek, синтаксис его таков: Seek идентификатор_файла, номер_байта. Например: 

  Seek #1, 10 

После данного скрипта считывание будет происходить с десятого байта.
Для построчного считывания существует оператор
LineInput. Синтаксис: LineInput file_num, var. File_num – идентификатор файла; var – переменная в которую записываются считанные данные Пример: 

  Line Input #1, a 

В данном случае считываемая строка записывается в переменную а. И последнее: если файл, который вы пытаетесь открыть, не существует – программа выдаст ошибку.
Теперь откроем тот же файл, но для записи. Внимание! Если файл уже создан, и вы открываете его для записи (
Output), то все что ранее в него было записано теряется. Будьте внимательны. А если файла не существует, тогда он создастся автоматически. Для записи в файл существует оператор Print номер_файла, выражение  (не путать с одноименным методом). Кстати, данный оператор записывает построчно, то есть каждый раз добавляет после выражения перенос строки (Chr(13) & Chr(10) или vbCrLf). Пример

  Print #1, "Это первая строка"
  Print #1, "Это вторая строка "
  Print #1, "Это третья строка "
  Print #1, "Это последняя строка "

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

Вопросы и предложения пишите на E-Mail или оставляйте сообщение в гостевой книге.

Назад к списку примеров

 






Украинская Баннерная Сеть
Hosted by uCoz