![]() |
Практическая работа 20. Контрольное заданиеDate: 2015-10-07; view: 368. D. Ввод данных в диалоговом режиме, запись, чтение блоками по нескольку элементов Записать данные типа String в файл по 3 элемента в строку, считать данные из файла в массив группами по 2 элемента. Private Sub Form_Load() ' объявление: "Ввести данные !!"Label2.BackColor = RGB(200, 0, 0)Label2 = "Input !!"End Sub ' введенные в диалоговом режиме в 6 текстовых полей ' данные, присвоить значениям переменных а1 - а6Private Sub Text1_Change()a1 = Text1End SubPrivate Sub Text2_Change()a2 = Text2End SubPrivate Sub Text3_Change()a3 = Text3End SubPrivate Sub Text4_Change()a4 = Text4End SubPrivate Sub Text5_Change()a5 = Text5End SubPrivate Sub Text6_Change()a6 = Text6End Sub Private Sub Command7_Click()' запись в файл по 3 элемента в строкуOpen "file44.txt" For Output As #1 Write #1, a1, a2, a3Write #1, a4, a5, a6Close #1End Sub Private Sub Command8_Click() ' считать из файла по 2 элемента в массив и ' вывести на экранOpen "file44.txt" For Input As #1j = 0Do While Not EOF(1)Input #1, a1, a2mass(j) = a1: mass(j + 1) = a2List3.List(j) = mass(j): List3.List(j + 1) = mass(j + 1)j = j + 2LoopClose #1End Sub· Создать 2 массива (m1(2), m2(2)) данных типа String, создать 3-й массив m3(2), элементы которого получаются попарным склеиванием данных типа String, вводимых в текстовые поля, · выполнить сравнение (оператор Like ) операнда, вводимого в текстовое поле с шаблоном - элементами массива m3(2), · записать 6 элементов массивов в файл в 2 строки, · стартовать процедуру Timer1_Timer () после создания 4-ого массива mf(2), · сделать переход к форме 2, · считать все данные из файла по 3 элемента в массив, · вывести на экран в массив поля списка. Последовательность действий: 1. создать на форме 2 поля списка для вывода массивов m1(2), m2(2) и процедуру Form_Load (), 2. создать на форме 2 массива текстовых полей из 2-х элементов для ввода данных и поле List3 для вывода элементов 3-его массива, см. процедуру Command1_Click(), 3. создать на форме текстовое поле Text3 для ввода операнда, сравниваемого с шаблоном и поле метки Label1 для вывода результатов сравнения, см. прцедуру Command2_Click(), 4. записать данные в файл, см. процедуру Command3_Click(), 5. ввести процедуру Timer1_Timer (), 6. создать вторую форму и на ней - массив поля списка для вывода результатов считывания данных из файла (см. процедурыCommand1_Click() и Command2_Click() второй формы) и 2 командные кнопки, 7. ввести код, данный ниже, пояснения даны под комментариями. Для перехода ко второй форме сделать щелчок на первой форме, см. процедуру Form_Click () первой формы.
Form1
(General) (Declarations) Dim j As Integer ' описание переменных для хранения значений операнда и ' шаблона Dim op1 As String, sch As String Dim res As Boolean ' переменная для работы с оператором Like Dim m1(2) As String, m2(2) As String, m3(2) As String Dim a As Integer, b As Integer ' описание вспомогательного массива и переменных, ' используемых для старта процедуры Timer1_Timer() Dim mf(2) As Integer Dim ffa As String, ffb As Integer
Private Sub Form_Load() ' создание массивов и вывод его элементов For j = 0 To 1 a = Int(Rnd * 10 + 60): m1(j) = Chr(a): List1.List(j) = m1(j) b = Int(Rnd * 10 + 70): m2(j) = Chr(b): List2.List(j) = m2(j) Next j End Sub
Private Sub Command1_Click() ' создание 3-его массива в диалоговом режиме For j = 0 To 1 m3(j) = Text1(j).Text & Text2(j).Text: List3.List(j) = m3(j) Next j
' создание массива, обеспечивающего старт процедуры ' Timer1_Timer() For j = 0 To 1 ffa = m3(j): ffb = Asc("ffa"): mf(j) = ffb Next j End Sub
' работа оператора Like и вывод результатов Private Sub Command2_Click() op1 = Text3.Text ' ввод операнда For j = 0 To 1 sch = m3(j): res = op1 Like sch If res Then Label1.Caption = "ДА": GoTo 300 Next j Label1.Caption = "НЕТ" 300 End Sub
Private Sub Command3_Click() ' запись в файл Open "ff.txt" For Output As #1 Write #1, m1(0), m1(1), m2(0) Write #1, m2(1), m3(0), m3(1) Close #1 End Sub
' процедура, обеспечивающая перемещение поля метки после ' создания массива Private Sub Timer1_Timer() Label2.Left = Int(200 * Rnd * mf(0)) Label2.Top = Int(150 * Rnd * mf(1)) End Sub
Private Sub Form_Click() Unload Me Form2.Show End Sub Form2 General Declarations Dim m4(6) As String, j As Integer, i As Integer Dim k1 As String, k2 As String, k3 As String
Private Sub Command1_Click() ' чтение из файла по 3 элемента Open "ff.txt" For Input As #1 j = 0 Do While Not EOF(1) Input #1, k1, k2, k3 m4(j) = k1: m4(j + 1) = k2: m4(j + 2) = k3 j = j + 3 Loop Close #1 End Sub
Private Sub Command2_Click() ' вывод в массив ListBox For i = 0 To 2 For j = 0 To 1 List1(i).List(j) = m4(2 * i + j) Next j, i End Sub Лекция 4: |