Опубликован: 04.07.2006 | Уровень: для всех | Доступ: свободно
Лекция 3:

Работа с устройствами, папками, файлами

< Лекция 2 || Лекция 3: 12345 || Лекция 4 >

Практическая работа 19. Работа с файлами: запись данных в файл, чтение из файла

Приводятся примеры работы с файлами, пояснения даны под комментариями к коду. Создать требуемые элементы управления, ввести код, данный ниже, см. также рис. 3.3 (схема формы) и рис. 3.4

Схема формы

Рис. 3.3. Схема формы

19а. Последовательный доступ: запись в файл в одну строку, в несколько строк

Задание: создать несколько переменных типа String, вывести их значения в поле списка и значения записать в файл.

Dim a1 As String, a2 As String, a3 As String, a4 As String
Dim a5 As String, a6 As String, d1 As Integer
Dim j As Integer, mass(6) As String, nomZ As Integer
Dim b1 As String, b2 As String, b3 As String, b4 As String

Private Sub Form_Load()
' присвоить значения переменным и вывести в поле List1
a1 = "a": a2 = "b": a3 = "c": a4 = "d" 
List1.List(0) = a1: List1.List(1) = a2
List1.List(2) = a3: List1.List(3) = a4
End Sub

Private Sub Command1_Click() ' запись в файл
' открыть файл для записи; файл можно просмотреть в 
' приложении "Блокнот"
Open "file11.txt" For Output As #1
Write #1, "Name", a1, a2, a3, a4 ' запись в файл
Close #1 ' закрыть файл
End Sub

Private Sub Command2_Click() ' запись в файл
Open "file22.txt" For Output As #1
' запись в файл строки и данных из поля списка в 4 
' строки (записи)
Write #1, "Name"
For j = 0 To 3
Write #1, List1.List(j)
Next j
Close #1
End Sub
Работа с файлами

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

19в. Последовательный доступ: чтение данных из файла в переменные, пока не появится признак конца файла

Private Sub Command3_Click()
' открыть файл, созданный ранее, для чтения
Open "file11.txt" For Input As #1 
Input #1, b1, b2, b3, b4 ' чтение данных в переменные b1 - b4
Close #1
Label1 = b1 & " " ' вывод результата в поле метки
Label1 = Label1 & b2 & " ": Label1 = Label1 & b3 & " "
Label1 = Label1 & b4 & " "
End Sub

' очистка поля метки щелчоком на поле метки
Private Sub Label1_Click()
Label1 = ""
End Sub

Private Sub Command4_Click() 
Open "file22.txt" For Input As #1 ' открыть файл для чтения
' считывать данные, пока не появится признак конца файла 
j = 0
Do While Not EOF(1) 
Input #1, b1
List2.List(j) = b1 ' вывести в поле списка
j = j + 1
Loop
Close #1
End Sub

19с. Доступ Random: запись, чтение

' При загрузке формы выводится сообщение "Сделать
' двойной щелчок на форме", после чего поля List3 и 
' List4 заполняются данными (cм. процедуру Form_DblClick())
Private Sub Form_Load() ' сделать двойной щелчок на форме
Label3.BackColor = RGB(230, 0, 0) 
Label3 = "Make DblClick on the form !!"
End Sub

Private Sub Form_DblClick() 
For j = 0 To 11
' заполнить поля нулями, чтобы иметь доступ
' к любой из строк
List4.List(j) = 0 
List5.List(j) = j ' заполнить поля номерами строк
Next j
End Sub

Private Sub Command5_Click() ' запись в файл
Open "file33.txt" For Random As #1 
For j = 0 To 11
' выбор номера записи случайным образом
nomZ = Int(Rnd * 10 + 1) 
' записать в файл под номером записи nomZ данные, 
' хранящиеся в переменной j
Put #1, nomZ, j 
List4.List(nomZ - 1) = nomZ & " " & j ' вывести результат
Next j
Close #1
End Sub

Private Sub Command6_Click() ' чтение из файла
Open "file33.txt" For Random As #1 ' открыть тот же файл
For j = 0 To 11
' выбор номера записи, которую нужно считать
nomZ = Int(Rnd * 10 + 1) 
' считать из номера записи nomZ в переменную d1
Get #1, nomZ, d1 
List5.List(j) = d1 ' вывести в поле списка
Next j
Close #1
End Sub

19d. Ввод данных в диалоговом режиме, запись, чтение блоками по нескольку элементов

Записать данные типа String в файл по 3 элемента в строку, считать данные из файла в массив группами по 2 элемента.

Private Sub Form_Load() ' объявление: "Ввести данные !!"
Label2.BackColor = RGB(200, 0, 0)
Label2 = "Input !!"
End Sub

' введенные в диалоговом режиме в 6 текстовых полей 
' данные, присвоить значениям переменных а1 - а6
Private Sub Text1_Change()
a1 = Text1
End Sub
Private Sub Text2_Change()
a2 = Text2
End Sub
Private Sub Text3_Change()
a3 = Text3
End Sub
Private Sub Text4_Change()
a4 = Text4
End Sub
Private Sub Text5_Change()
a5 = Text5
End Sub
Private Sub Text6_Change()
a6 = Text6
End Sub

Private Sub Command7_Click()
' запись в файл по 3 элемента в строку
Open "file44.txt" For Output As #1 
Write #1, a1, a2, a3
Write #1, a4, a5, a6
Close #1
End Sub

Private Sub Command8_Click() 
' считать из файла по 2 элемента в массив и 
' вывести на экран
Open "file44.txt" For Input As #1
j = 0
Do While Not EOF(1)
Input #1, a1, a2
mass(j) = a1: mass(j + 1) = a2
List3.List(j) = mass(j): List3.List(j + 1) = mass(j + 1)
j = j + 2
Loop
Close #1
End Sub
< Лекция 2 || Лекция 3: 12345 || Лекция 4 >
Константин Новков
Константин Новков

Лекция 3: 2

Для создания возможности использования объектов файловой системы нужно подключить библиотеку DLL, содержащую эти объекты: меню Разработать > Ccылки > Microsoft Scriptlet Component (сделать щелчок на соответствующем элементе управления CheckBox).

Не могу найти меню Разработать (Develop)>Links и т.д.

антонина квасова
антонина квасова