Информатика. АВТ-018 Ковтуненко ЛР8. новосибирский государственный технический университет
Скачать 63.91 Kb.
|
МИНИСТЕРСТВО НАУКИ И ВЫСШЕГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ ФЕДЕРАЛЬНОЕ государственное БЮДЖЕТНОЕ образовательное учреждение высшего образования «НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ» _______________________________________________________________________ Факультет автоматики и вычислительной техники Кафедра автоматики ОТЧЁТ по лабораторной работе №8 «ВВОД/ВЫВОД В ФАЙЛЫ. ЭЛЕМЕНТЫ УПРАВЛЕНИЯ» по дисциплине: «Информатика» вариант №16 Выполнил:Проверил: студент гр. АВТ-018 Ковтуненко Денис доц. Худяков Д.С. «9» декабря 2020 г.«___» _________ 2020 г. _________________ (оценка, подпись) Новосибирск 2020 г. Цель работы (стр. 75): Научиться оперировать с текстовыми файлами. Научиться использовать элементы управления. Задание 1. Научиться оперировать с текстовыми файлами и использовать элементы управления. Прочитать из текстового файла набор слов, обработать в подпрограмме-процедуре в соответствии с вариантом табл. 17 и вывести в другой текстовый файл. Фрагмент таблицы 17
Методические указания: а) Записать в текстовый файл с помощью программы «Блокнот» набор строк; б) На панели инструментов VBA выбрать кнопку пиктографического меню («Элементы управления»). Выбрать элемент – «Кнопка» и поместить его в рабочий лист Excel. Перейти в режим конструктора, нажав кнопку. В режиме конструктора два раза щелкнуть по элементу «Кнопка», после чего откроется редактор Visual Basic; в) написать процедуру Sub, считывающую данные из созданного текстового файла; г) создать еще три кнопки и написать три соответствующие им процедуры, каждая из которых соответственно обрабатывает данные из текстового файла по вариантам табл. 17, записывает результат решения в другой текстовый файл, очищает содержимое рабочего листа; д) продемонстрировать результат работы программ с помощью программы «Блокнот». Решение: Private Sub CommandButton1_Click() ‘Клик по первой кнопке Dim NumOpenedFile%, i%, InputArray() As String NumOpenedFile = FreeFile ‘Взял свободное числовое значение i = 0 Open "D:\Рабочий стол\АВТ-018 Ковтуненко ЛР8\Input.txt" ‘Открыл файл ввода текста For Input As NumOpenedFile Do Until EOF(NumOpenedFile) 'Пока не кончится файл, делать этот цикл ReDim Preserve InputArray(i) ‘Ввод в столбик слов Line Input #NumOpenedFile, InputArray(i) Лист1.Range("a" & i + 1) = InputArray(i) i = i + 1 Loop Close NumOpenedFile ‘Закрыл читаемый файл CommandButton1.Caption = "Данные записаны на лист" End Sub Private Sub CommandButton2_Click() ‘Клик по второй кнопке Dim i%, j% Dim Alphabet() As String Dim InputString As String Dim TempString As String j = 1 Do While (Лист1.Range("A" & j) <> "") ‘Выполнение преобразований InputString = LCase(Лист1.Range("A" & j)) 'Входная строка, все символы - в нижнем регистре, т. к. заглавная "А" и строчная совсем разные символы. ReDim Alphabet(1 To Len(InputString)) For i = 1 To Len(InputString) Alphabet(i) = Mid(InputString, i, 1) 'Создание массива с буквами слова If ((Len(InputString) - Len(Replace(InputString, Alphabet(i), ""))) / Len(Alphabet(i)) < 2) Then 'Если количество букв меньше, чем два, TempString = TempString & Alphabet(i) 'то записать во временную переменную End If Next i If (TempString = InputString) Then 'Если составленный алфавит, записанный в строку будет равен входной строке, то это одинаковые строки. Лист1.Range("B" & j) = TempString End If TempString = "" 'Обнуление j = j + 1 'Прибавление Loop CommandButton2.Caption = "Алгоритм записал результат в соседнюю ячейку" End Sub Private Sub CommandButton3_Click() ‘Клик по третьей кнопке Dim i As Integer Dim k As Integer Dim WordsArray() As String i = 1 k = 1 Do While Лист1.Range("A" & i) <> "" ‘Если в столбце А есть слово, то в B должен быть результат If Лист1.Range("B" & i) <> "" Then ‘Если результат есть, то его надо записать в массив ReDim Preserve WordsArray(1 To k) WordsArray(k) = Лист1.Range("B" & i).Text k = k + 1 End If i = i + 1 Loop Dim LineOut$, NumOpenedFile% NumOpenedFile = FreeFile ‘Взял свободное числовое значение Open "D:\Рабочий стол\АВТ-018 Ковтуненко ЛР8\Output.txt" ‘Открыл файл для вывода For Output As NumOpenedFile For i = 1 To (UBound(WordsArray) - LBound(WordsArray) + 1) ‘Делать цикл по количеству элементов массива LineOut = WordsArray(i) Print #NumOpenedFile, LineOut Next Close NumOpenedFile ‘Закрыть файл для записи CommandButton3.Caption = "Запись файла выполнена" End Sub Private Sub CommandButton4_Click() ‘Клик по 4-ой кнопке Dim i% i = 1 Do While Лист1.Range("A" & i) <> "" ‘Чистка столбцов от слов Лист1.Range("A" & i) = "" If Лист1.Range("B" & i) <> "" Then Лист1.Range("B" & i) = "" End If i = i + 1 Loop CommandButton1.Caption = "Прочитать файл и записать на лист" ‘Назначить надпись первой кнопке CommandButton2.Caption = "Преобразовать текст" ‘Назначить надпись второй кнопке CommandButton3.Caption = "Записать в файл" ‘Назначить надпись третьей кнопке End Sub Р езультаты: Выводы. Научился оперировать с текстовыми файлами. Научился использовать элементы управления. |