Двоичный (Binary) доступ
Двоичный доступ в отличие от произвольного возможен не к определeнному набору данных, а к отдельному байту. Практическая работа 19. Работа с файлами: запись данных в файл, чтение из файла Приводятся примеры работы с файлами, пояснения даны под комментариями к коду. Создать требуемые элементы управления, ввести код, данный ниже, см. также рис. 3.3 (схема формы) и рис. 3.4 Рис. 3.3. Схема формы 19а. Последовательный доступ: запись в файл в одну строку, в несколько строк Задание: создать несколько переменных типа String, вывести их значения в поле списка и значения записать в файл. Dim a1 As String, a2 As String, a3 As String, a4 As StringDim a5 As String, a6 As String, d1 As IntegerDim j As Integer, mass(6) As String, nomZ As IntegerDim b1 As String, b2 As String, b3 As String, b4 As StringPrivate Sub Form_Load()' присвоить значения переменным и вывести в поле List1a1 = "a": a2 = "b": a3 = "c": a4 = "d" List1.List(0) = a1: List1.List(1) = a2List1.List(2) = a3: List1.List(3) = a4End SubPrivate Sub Command1_Click() ' запись в файл' открыть файл для записи; файл можно просмотреть в ' приложении "Блокнот"Open "file11.txt" For Output As #1Write #1, "Name", a1, a2, a3, a4 ' запись в файлClose #1 ' закрыть файлEnd SubPrivate Sub Command2_Click() ' запись в файлOpen "file22.txt" For Output As #1' запись в файл строки и данных из поля списка в 4 ' строки (записи)Write #1, "Name"For j = 0 To 3Write #1, List1.List(j)Next jClose #1End SubРис. 3.4. Работа с файлами 19в. Последовательный доступ: чтение данных из файла в переменные, пока не появится признак конца файла Private Sub Command3_Click()' открыть файл, созданный ранее, для чтенияOpen "file11.txt" For Input As #1 Input #1, b1, b2, b3, b4 ' чтение данных в переменные b1 - b4Close #1Label1 = b1 & " " ' вывод результата в поле меткиLabel1 = Label1 & b2 & " ": Label1 = Label1 & b3 & " "Label1 = Label1 & b4 & " "End Sub' очистка поля метки щелчоком на поле меткиPrivate Sub Label1_Click()Label1 = ""End SubPrivate Sub Command4_Click() Open "file22.txt" For Input As #1 ' открыть файл для чтения' считывать данные, пока не появится признак конца файла j = 0Do While Not EOF(1) Input #1, b1List2.List(j) = b1 ' вывести в поле спискаj = j + 1LoopClose #1End Sub19с. Доступ Random: запись, чтение ' При загрузке формы выводится сообщение "Сделать' двойной щелчок на форме", после чего поля List3 и ' List4 заполняются данными (cм. процедуру Form_DblClick())Private Sub Form_Load() ' сделать двойной щелчок на формеLabel3.BackColor = RGB(230, 0, 0) Label3 = "Make DblClick on the form!!"End SubPrivate Sub Form_DblClick() For j = 0 To 11' заполнить поля нулями, чтобы иметь доступ' к любой из строкList4.List(j) = 0 List5.List(j) = j ' заполнить поля номерами строкNext jEnd SubPrivate Sub Command5_Click() ' запись в файлOpen "file33.txt" For Random As #1 For j = 0 To 11' выбор номера записи случайным образомnomZ = Int(Rnd * 10 + 1) ' записать в файл под номером записи nomZ данные, ' хранящиеся в переменной jPut #1, nomZ, j List4.List(nomZ - 1) = nomZ & " " & j ' вывести результатNext jClose #1End SubPrivate Sub Command6_Click() ' чтение из файлаOpen "file33.txt" For Random As #1 ' открыть тот же файлFor j = 0 To 11' выбор номера записи, которую нужно считатьnomZ = Int(Rnd * 10 + 1) ' считать из номера записи nomZ в переменную d1Get #1, nomZ, d1 List5.List(j) = d1 ' вывести в поле спискаNext jClose #1End Sub
|