УчМатериалы-Информатика-20010-2011уч-года / Модуль-2 (Разделы-04-05) / Раздел-04 / ЛР-Раздел-04-2008 / ЛР-4-10
.docТема 4.10. Лабораторная работа
«Текстовые файлы»
Цель лабораторной работы состоит в изучении средств VB и средств VS для работы с текстовыми файлами.
4.10.1. Вопросы, подлежащие изучению
-
Понятие файла. Текстовые файлы.
-
Основные средства VB для работы с текстовыми файлами.
-
Средства обработчика ошибок времени исполнения.
-
Классы и объекты VS для работы с текстовыми файлами.
-
Использование классов StreamReader, StreamWriter и объекта
My.Computer.FileSystem для работы с текстовыми файлами.
-
Печать текстовых файлов.
4.10.2. Задание
-
Выбрать вариант задания для реализации процедуры обработки строковых данных из
таблицы 4.9-1.
-
Создать с помощью стандартной программы MS Windows «Блокнот» текстовый
файл с исходными данными, соответствующий варианту задания п.1.
-
Разработать интерфейс пользователя, предусмотрев в нем несколько кнопок: для ввода данных из текстового файла, для обработки данных, для вывода результата в текстовый файл.
-
Написать программный код процедур пользователя для чтения и записи данных в/из
текстового файла. Причем обмен данными между пользовательскими процедурами
должен осуществляться через параметры, без использования глобальных переменных .
-
Разработать проект, который вводит исходные данные из текстового файла и
отображает их на форме, а затем обрабатывает в соответствии с заданием.
-
Дописать программный код проекта, в котором событийные процедуры должны
содержать только операторы вызова пользовательских процедур.
-
Подготовить тесты для контрольного решения задачи.
-
Выполнить созданный проект и получить решение.
4.10.3. Варианты задания
Варианты задания для реализации процедуры обработки строковых данных приведены в таблице 4.9-1.
4.10.4. Содержание отчета
-
Тема и название работы
-
Задание на разработку проекта и вариант задания
-
Формализация задания
-
Разработка проекта:
-
Графический интерфейс пользователя;
-
Таблица свойств объектов;
-
Программный код с использованием процедур.
-
Результаты выполнения проекта.
-
Доказательство правильности работы программы.
4.10.5. Пример выполнения задания
-
Тема и название работы:
Текстовые файлы – Создание проекта Проект-4-10-Лаб.
-
Задание на разработку проекта и вариант задания:
Создать проект, который вводит из двух файлов строки a и b , отображает их на форме, а затем обрабатывает, удаляя из строки a все символы, расположенные на нечетных позициях строки b, результат обработки необходимо отобразить на форме и сохранить в текстовом файле.
-
Формализация и уточнение задания:
-
Разработка проекта
-
Разработка графического интерфейса пользователя
Разработанная форма интерфейса пользователя приведена на рис. 4.10-1.

Рис. 4.10-1
-
Установка свойств объектов
Свойства объектов управления разработанной формы студенты могут установить самостоятельно.
-
Написание программного кода с использованием процедур.
Программный код, решаемой задачи представлен на рис. 4.10-2 который содержит процедуры vvod( ), vivod( ), Обработка( ), Чтение( ) и Запись( ). Так как
разработанный интерфейс имеет не одну, а несколько кнопок, которые работают с
первой строкой, то эта строка должна быть доступна нескольким событийным
процедурам, и поэтому в программном коде ее необходимо сделать глобальной
(видимой для всех процедур), и объявить в начале программы, до описания всех
процедур.
-
Public Class Form1
Dim Str1 As String
'Функция ввода исходн. данных из TextBox
Function vvod(ByVal T As TextBox) As String
Return T.Text
End Function
'Процедура вывода результата в TextBox
Sub vivod(ByVal z As String, ByRef t As TextBox)
If z.Length <> 0 Then
t.Text = z
Else
t.Text = "Все удалено"
End If
End Sub
'Процедура решения задачи удаления символов из строки
Sub Обработка(ByVal b As String, ByRef a As String)
Dim d, m, i, j As Short
m = CShort(a.Length) 'длина строки a
d = CShort(b.Length) 'длина строки b
For i = 0 To CShort(d-1) Step 2 'перебор нечетных символов
j = 0
Do While j < m 'перебор всех символов строки a
If a.Substring(j, 1) = b.Substring(i, 1) Then
a = a.Remove(j, 1) 'пока симв. совп.- удаляем из a
m = CShort(m - 1) 'уменьшаем длину строки a
Else
j = CShort(j + 1) 'переход к след. символу строки a
End If
Loop
Next i
End Sub
'Процедура записи строки в файл.
Sub Запись(ByVal ПутьФ As String, ByVal str1 As String)
If (My.Computer.FileSystem.FileExists(ПутьФ) = True) Then
If (MsgBox("Файл существует. Переписать?", _
MsgBoxStyle.YesNo Or MsgBoxStyle.Question, _
"Overwrite") <> MsgBoxResult.Yes) Then Exit Sub
End If
' Сохраняем данные.
Try
My.Computer.FileSystem.WriteAllText(ПутьФ, Str1, False)
Catch ex As Exception
MsgBox("Файл не может быть записан на диск " & _
"из-за ошибки:" & vbCrLf & vbCrLf & ex.Message)
End Try
End Sub
'Процедура чтения данных из файла целиком в одну строку
Sub Чтение(ByRef Str3 As String, ByVal filename As String)
' Открываем существ. файл и загружаем его текст в строку
Try
Str3 = My.Computer.FileSystem.ReadAllText(filename)
Catch ex As Exception
MsgBox("Файл не может быть открыт " & _
" из-за ошибки:" & vbCrLf & vbCrLf & ex.Message)
End Try
End Sub
'Событийная проц. для записи обработанной перв. строки в файл
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e _
As System.EventArgs) Handles Button2.Click
Dim ПутьФ As String = ""
ПутьФ = vvod(TextBox1)
Запись(ПутьФ, Str1)
End Sub
' Событийная проц. для чтения первой строки из первого файла
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim ПутьФ1 As String = ""
ПутьФ1 = vvod(TextBox1)
Чтение(Str1, ПутьФ1)
vivod(Str1, TextBox2)
End Sub
' Событийная проц. для чтения второй строки из второго файла и
' обработки строк
Private Sub Button3_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button3.Click
Dim Str2 As String = ""
Dim ПутьФ2 As String = ""
ПутьФ2 = vvod(TextBox5)
Чтение(Str2, ПутьФ2)
Обработка(Str2, Str1)
vivod(Str2, TextBox3)
vivod(Str1, TextBox4)
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button4.Click
End
End Sub
End Class
Рис. 4.10-2
-
Выполнение приложения и получение результатов
Выполнить проект и получить результаты на рис. 4.10-3.

Рис. 4.10-3
-
Доказательство правильности работы программы
4.10.6. Контрольные вопросы по теме «Текстовые файлы»
-
Какие классы используются для работы с файлами?
-
Каким образом можно обработать ошибки времени выполнения?
-
Что такое потоковый доступ к файлам?
-
Какая функция открывает текстовый файл?
-
Какая функция закрывает текстовый файл?
-
Какие функции осуществляют операции чтения и записи?
-
Какие методы используются для обработки строк?
Тема
4.10. ЛР «Текстовые файлы»
Страница
