Опубликован: 04.07.2006 | Доступ: свободный | Студентов: 5477 / 629 | Оценка: 4.11 / 3.96 | Длительность: 11:08:00
Лекция 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 >
антонина квасова
антонина квасова
Владимир Муратов
Владимир Муратов

По курсу Visual Basic где же взять материалы для практических работ? 

Светлана Ведяева
Светлана Ведяева
Россия, Саратов
Оксана Пагина
Оксана Пагина
Россия, Москва