Робота з файлами в visual basic 6

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

У даній статті мова піде про роботу з текстовими файлами засобами Visual Basic.

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

У Visual Basic існує функція FreeFile. яка повертає номер вільного каналу, який можна використовувати для роботи з файлом. Якщо вільних каналів немає, то виникає помилка.

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 - для додавання, якщо файл не існує то він буде створений, а якщо файл існує, то дані будуть додаватися в кінець файлу.

Наприклад, якщо треба вважати перший рядок з якого-небудь файлу в змінну 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 для читання

Line Input #MyFile, tS 'Читаємо файл TEST.TXT через підрядник

If i => 5 Then S = tS 'Якщо п'ятий рядок, то запам'ятовуємо її в змінну S

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 # Номер_файла. при цьому, # Номер_файла вказувати не обов'язково.