Лекция 3: 2 Для создания возможности использования объектов файловой системы нужно подключить библиотеку DLL, содержащую эти объекты: меню Разработать > Ccылки > Microsoft Scriptlet Component (сделать щелчок на соответствующем элементе управления CheckBox). Не могу найти меню Разработать (Develop)>Links и т.д. |
Опубликован: 04.07.2006 | Уровень: для всех | Доступ: свободно
Лекция 3:
Работа с устройствами, папками, файлами
Практическая работа 19. Работа с файлами: запись данных в файл, чтение из файла
Приводятся примеры работы с файлами, пояснения даны под комментариями к коду. Создать требуемые элементы управления, ввести код, данный ниже, см. также рис. 3.3 (схема формы) и рис. 3.4
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
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