Мой Kbyte.Ru
Рассылка Kbyte.Ru
Группы на Kbyte.Ru
Партнеры Kbyte.Ru
Реклама
Сделано руками
Сделано руками
> Статьи - Алексей Немиро -

Visual Basic 5.0/6.0 - Файлы и папки

Все статьи / Файлы и папки

Работа с файлами в Visual Basic 6.0

Автор: Алексей Немиро | добавлено: 03.03.2010, 14:24 | просмотров: 24986 (0+) | комментариев: 0 | рейтинг: *x9

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

В данной статье речь пойдет о работе с текстовыми файлами средствами Visual Basic.

 

Дескриптор файла

 

Для работы с файлами операционная система использует каналы ввода/вывода, т.е. каждый открытый файл имеет свой номер.

 

В Visual Basic существует функция FreeFile, которая возвращает номер свободного канала, который можно использовать для работы с файлом. Если свободных каналов нет, то возникает ошибка.

 

FreeFile [ (RangeNumber) ]

 

RangeNumber -необязательный параметр, который позволяет определить диапазон значений свободных каналов, если RangeNumber = 0 (по умолчанию), то возвращается номер канала из диапазона 1 - 255, а если 1, то из диапазона 256 - 511.

 

Пример:

 

MyFile = FreeFile ' Переменной MyFile присвоен свободный канал и теперь ее можно использовать для работы с файлами

 

Работа с текстовыми файлами

 

Наиболее часто приходится встречаться с текстовыми файлами. Текстовые файлы состоят из набора символов ASCII (American Standard Code for Information Interchange - Американский стандартный код для обмена информацией).

 

Прежде чем начать записывать/считывать данные, файл необходимо открыть, делается это при помощи оператора Open (Имя_файла) For [Input | Output | Append] As #Номер_файла, где:

 

Input - открыть файл для чтения, если файл не существует, то возникает ошибка;

Output - для записи, если файл не существует, то он будет создан, а если файл существует, то он будет перезаписан;

Append - для добавления, если файл не существует то он будет создан, а если файл существует, то данные будут добавляться в конец файла.

 

Чтение текстовых файлов можно производить двумя способами: читать посимвольно, для этого используется функция Input(Количество_считываемых_символов, #Номер_файла) и построчно, для этого используется функция Line Input #Номер_файла, Куда_считывать.

 

Например, если надо считать первую строку из какого-нибудь файла в переменную S, то код будет таким:

 

Dim MyFile 'Объявляем переменную для свободного файла

Dim S As String 'Переменная для хранения считанных данных

 

MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами

Open ("C:\TEST.txt") For Input As #MyFile 'Открываем файл TEST.TXT для чтения

Line Input #MyFile, S 'Считываем первую строку из файла TEST.TXT в переменную S

Close #MyFile 'Закрываем файл

 

Если, например, надо считать не первую, а пятую строку, то код будет немного другой:

 

Dim MyFile 'Объявляем переменную для свободного файла

Dim i As Integer 'Переменная для цикла

Dim tS As String 'Переменная для считывания строк

Dim S As String 'Переменная для хранения окончательных данных

 

MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами

Open ("C:\TEST.txt") For Input As #MyFile 'Открываем файл TEST.TXT для чтения

 

For i = 1 To 5

Line Input #MyFile, tS 'Читаем файл TEST.TXT построчно

If i => 5 Then S = tS 'Если пятая строка, то запоминаем ее в переменную S

Next i

Close #MyFile 'Закрываем файл

 

А если надо считать все данные из файла, то:

 

Dim MyFile 'Объявляем переменную для свободного файла

Dim S As String 'Переменная для хранения считанных данных

 

MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами

Open ("C:\TEST.txt") For Input As #MyFile 'Открываем файл TEST.TXT для чтения

S = Input$(LOG(1), 1) 'Считываем весь файл в переменную S

Close #MyFile 'Закрываем файл

 

Для записи в файл существуют операторы Print #Номер_файла, Данные и Write #Номер_файла, Данные. Отличает эти операторы только то, что Write записывает данные в кавычках, а Print без кавычек.

 

Ниже следующий код создаст на диске C:\ новый файл TEST.TXT и запишет в него две строки, первую без кавычек, а вторую в кавычках:

 

Dim MyFile 'Объявляем переменную для свободного файла

 

MyFile = FreeFile ' Присваиваем свободный канал, для работы с файлами

Open ("C:\TEST.txt") For Output As #MyFile 'Открываем файл TEST.TXT для записи

Print #MyFile, "Эта строка записана оператором Print, она без кавычек…"

Write #MyFile, "Эта строка записана оператором Write, она в кавычках…"

Close #MyFile 'Закрываем файл

 

Вот собственно и все. Как вы уже наверно поняли, для закрытия файла служит оператор Close #Номер_файла, при этом, #Номер_файла указывать не обязательно.

 

The End

 

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

+ Добавить в избранное
    ? Помощь
Об авторе

Алексей Немиро

Интернет-деятель. Автор многочисленных статей и переводов статей по программированию и информационным технологиям. Работы Алексея можно найти в популярных печатных изданиях компьютерной тематики. Автор проекта Kbyte.Ru.
Сейчас Алексей занимается профессиональным Web-программированием на базе технологий .NET Framework. Иногда пишет различные программки и компоненты для Windows и Android. В свободное время занимается Web-дизайном, увлекается фото- и видеосъемкой.

См. также:
Профиль автора
Алексей Немиро
Последние комментарии (всего: 0)

Добавлять комментарии могут только зарегистрированные пользователи сайта.
Если у Вас уже есть учетная запись на Kbyte.Ru, пройдите процедуру авторизации OpenID.
Если Вы еще не зарегистрированы на Kbyte.Ru - зарегистрируйтесь.


Нет комментариев...

Авторизация
 
OpenID
Зарегистрируйся и получи 10% скидку на добавление своего сайта в каталоги! Подробнее »
Поиск по сайту
Реклама
Счетчики