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