Лабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы»




Скачать 213.33 Kb.
НазваниеЛабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы»
Дата публикации27.09.2013
Размер213.33 Kb.
ТипЛабораторная работа
skachate.ru > Литература > Лабораторная работа

Лабораторная работа по теме

«Тема 4.10. Лабораторная работа

«Текстовые файлы»



Цель лабораторной работы состоит в изучении средств VB и средств VS для работы с текстовыми файлами.

4.10.1. Вопросы, подлежащие изучению


  1. Понятие файла. Текстовые файлы.

  2. Основные средства VB для работы с текстовыми файлами.

  3. Средства обработчика ошибок времени исполнения.

  4. Классы и объекты VS для работы с текстовыми файлами.

  5. Использование классов StreamReader, StreamWriter и объекта

My.Computer.FileSystem для работы с текстовыми файлами.

  1. Печать текстовых файлов.



4.10.2. Задание


  1. Выбрать вариант задания из таблицы 4.10-1.

  2. Создать с помощью стандартной программы MS Windows «Блокнот» текстовый файл из 5-7 строк с исходными данными, соответствующими варианту задания п.1.

  3. Разработать интерфейс пользователя, предусмотрев в нем несколько кнопок: для ввода данных из текстового файла, для обработки данных, для вывода результата в текстовый файл.

  4. Написать программный код процедуры пользователя для обработки текстового файла, которая должна вызывать процедуру обработки одной строки из лабораторной работы 4.9, а также процедур для чтения и записи данных в/из текстового файла. Причем обмен данными между пользовательскими процедурами должен осуществляться через параметры, без использования глобальных переменных.

  5. Разработать проект, который вводит исходные данные из текстового файла и отображает их на форме, а затем обрабатывает в соответствии с заданием.

  6. Дописать программный код проекта, в котором событийные процедуры должны содержать только операторы вызова пользовательских процедур.

  7. Подготовить тесты для контрольного решения задачи.

  8. Выполнить созданный проект и получить решение.



^

4.10.3. Варианты задания


Таблица 4.10-1.

1)

В текстовом файле найти строку, содержащую наибольшее количество цифр, идущих подряд.

2)



Зашифровать каждую строку текстового файла, содержащего русские буквы, пробелы и знаки препинания: заменить каждую букву, непосредственно следующей за ней по алфавиту ("я" на "а"), строчную букву преобразовать в прописную, прописную - в строчную.

3)

В текстовом файле найти строку, содержащую наибольшее количество слов, начинающихся и заканчивающихся на одну и ту же букву

4)


В текстовом файле найти строки, в которых не было ни одной замены каждого третьего слова «мама» на слово «мамочка».

5)

Из каждой строки текстового файла удалить все символы, входящие в нее более одного раза и найти самую короткую строку - результат.

6)

Преобразовать каждую строку текстового файла, повторив в ней каждый символ, совпадающий с заданным и найти самую длинную строку - результат.

7)

Записать в новый файл те строки исходного текстового файла, из символов которых можно составить вашу фамилию.

8)

В каждой строке текстового файла определить максимальную длину подстроки, состоящей из заданного символа и найти их сумму.

9)

Исключить из каждой строки текстового файла группы символов, расположенных между круглыми скобками, включая сами скобки. Предполагается, что внутри каждой пары скобок нет других скобок. Найти самую длинную строку – результат.

10)

В текстовом файле найти строку, содержащую наименьшее количество слов четной длины, в которых нет буквы «а».

11)

Записать в новый файл те строки исходного текстового файла, в которых нет ни одного слова, содержащего ровно три буквы «а».

12)


В каждой строке текстового файла определить самое длинное слово нечетной длины и записать их в новый файл.

13)

В текстовом файле найти строку, содержащую самое короткое слово четной длины.

14)

Каждая строка текстового файла содержит дату в формате "mm-dd-yyyy", где mm - месяц, dd - день, yyyy - год. Записать в новый файл только те строки исходного текстового файла, которые содержат корректно заданные даты, изменив их формат на "dd.mm.yy", где yy - две последние цифры года.

15)

Из каждой строке текстового файла, не содержащей цифр, получить "сжатую" строку, заменив самую длинную подстроку вида "^ XXX…XX" на подстроку вида "nX", где X - повторяющийся символ, n - число его повторений и записать в новый файл только измененные строки.

16)

Записать в новый файл те строки исходного текстового файла, которые нельзя преобразовать в число.

17)

Из каждой строки текстового файла получить новую строку, записывая каждый символ исходной строки только один раз.

18)

В каждой строке текстового файла подсчитать сумму цифр и найти строку с наименьшей суммой.

19)

В текстовом файле, не содержащем букв русского алфавита, найти строку с максимальным процентом гласных букв (a, e, i, o, u, y).

20)

Записать в новый файл те строки исходного текстового файла, в которых самое длинное слово встречается раньше, чем самое короткое слово.

21)

Преобразовать каждую строку текстового файла, удалив из каждого слова нечетной длины средний символ, и найти строку с минимальным количеством удалений.

22)

В текстовом файле найти строку, содержащую наибольшее количество симметричных слов, т.е. читающихся одинаково слева направо и справа налево.

23)

Записать в новый файл те строки исходного текстового файла, которые являются записью вещественного числа с нулевой дробной частью.

24)

Для каждой строки текстового файла, содержащей корректно заданную дату в формате "dd.mm.yy", где dd - день, mm - месяц, yy - год, получить строку с датой, отстоящей от заданной на n дней вперед, в том же формате и записать в новый файл.

25)

Записать в новый файл те строки исходного текстового файла, символы которых расположены в алфавитном порядке.

26)

Записать в новый файл те строки исходного текстового файла, которые являются записью целого числа.

27)

Записать в новый файл те строки исходного текстового файла, в которых нет n-ого с конца вхождения заданного символа.

28)

Преобразовать каждую строку текстового файла, состоящую из "слов" длиной менее 10 символов и разделенных запятыми, заменив запятые группами пробелов так, чтобы каждое слово начиналось с позиции 10*(k - 1) + 1, где k - номер "слова".

29

Преобразовать каждую строку текстового файла, вставив в середину каждого слова четной длины букву «К» и найти строку с максимальным количеством вставок.

30)

Для каждой строки текстового файла, содержащей корректно заданную дату в формате "dd.mm.yy", где dd - день, mm - месяц, yy - год, получить строку с датой, отстоящей от заданной на n дней назад, в том же формате и записать в новый файл.

31)

Записать в новый файл те строки исходного текстового файла, для которых буква «с» встречается чаще в первой половине строки.

32)

В текстовом файле найти строку с максимальным вхождением подстроки «abba»

33)


В каждом слове строк текстового файла поменять местами буквы, стоящие на p-й и q-й позициях от начала.

34)


Для каждой строки текстового файла определить среднее количество символов в словах четной длины и найти строку с минимальным количеством.

35)

Из каждой строки текстового файла удалить все знаки «+» перед символами, являющимися цифрами, и найти строку с максимальным количество удалений.


4.10.4. Содержание отчета

  1. Тема и название работы

  2. Задание на разработку проекта и вариант задания

  3. Формализация задания

  4. Разработка проекта:

  1. Графический интерфейс пользователя;

  2. Таблица свойств объектов;

  3. Программный код с использованием процедур.

  1. Результаты выполнения проекта.

  2. Доказательство правильности работы программы.


^ 4.10.5. Пример выполнения задания-1

  1. Тема и название работы:

Текстовые файлы – Создание проекта Проект-4-10-Лаб.


  1. Задание на разработку проекта и вариант задания:

Создать проект, который вводит из второго файла строку b и вводит все строки первого файла, отображает их на форме, а затем обрабатывает, удаляя из каждой строки первого файла все символы, расположенные на нечетных позициях строки b, используя ранее разработанную для лабораторной работы 4.9 процедуру Обработка(). Результат обработки необходимо отобразить на форме и перезаписать в тот же текстовый файл. Работу с текстовыми файлами осуществить с помощью объекта My.Computer.FileSystem.


  1. Формализация и уточнение задания:




  1. Разработка проекта

    1. Разработка графического интерфейса пользователя

Разработанная форма интерфейса пользователя приведена на рис. 4.10-1.

Для вывода на форму текстового файла, состоящего из нескольких строк, используются текстовые поля TextBox2 и TextBox4, для которых свойство Multiline обязательно должно быть установлено в состояние True. Также требется установить для этих полей свойство ScrollBars в состояние Vertical для обеспечения возможности вертикальной прокрутки содержимого этих текстовых полей. Текстовое поле TextBox3 для вывода на форму только одной строки из второго файла может оставаться со значением свойства Multiline, равным False, также, как и два других текстовых поля TextBox1 и TextBox5 для ввода путей к текстовым файлам.
Рис. 4.10-1


    1. Установка свойств объектов

Свойства объектов управления разработанной формы студенты могут установить самостоятельно.


    1. Написание программного кода с использованием процедур.

Программный код, решаемой задачи представлен на рис. 4.10-2, который содержит процедуры vvod(), vivod() ,Обработка(), Resh(), Чтение() и Запись(). Так как разработанный интерфейс имеет не одну, а несколько кнопок, которые работают со строками, содержащими первый файл (Str1 для исходного файла и Rez - для измененного файла), то эти строки должны быть доступны нескольким событийным процедурам, и поэтому в программном коде их необходимо сделать глобальными (видимыми для всех процедур), и объявить в начале программы, до описания всех процедур.

Option Strict On

Option Explicit On

^ Public Class Form1

'Глобальные строки

Dim Str1 As String 'строка с исходным первым файлом

Dim Rez As String 'строка с измененным первым файлом


' Процедура записи строки в файл.

^ 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("Could not open the file due to the " & _

" following error:" & vbCrLf & vbCrLf & ex.Message)

End Try

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'перебор нечетных симв. строки b

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 Resh (ByVal b As String, ByVal s1 As String, ByRef s2 As String)

Dim a As String

Dim Stroki() As String 'массив строк первого файла

Stroki = Split(s1, vbNewLine) 'Разбиваем строку с первым файлом

' на массив строк по признаку конца строки

s2 = "" ' новая строка для нового файла целиком

^ For i As Integer = 0 To Stroki.Length - 1

a = Stroki(i) ' одна строка первого файла

Обработка(b, a) ' удаление символов из строки

'собираем измененные строки первого файла в одну строку s2

s2 = s2 + a + vbNewLine

Next

End Sub

Function vvod(ByVal T As TextBox) As String

Return T.Text

End Function
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

'Процедура записи строки с измененным первым файлом в тот же файл

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e _

^ As System.EventArgs) Handles Button2.Click

Dim ПутьФ As String = ""

ПутьФ = vvod(TextBox1)

Запись(ПутьФ, Rez)

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)

vivod(Str2, TextBox3)

Resh(Str2, Str1, Rez)

vivod(Rez, TextBox4)

End Sub

Private Sub Button6_Click(ByVal sender As System.Object, ByVal e _

As System.EventArgs) Handles Button6.Click

End

End Sub

End Class

Рис. 4.10-2


  1. Выполнение приложения и получение результатов

Выполнить проект и получить результаты на рис. 4.10-3.
Рис. 4.10-3


  1. Доказательство правильности работы программы

Из всех строк исходного первого файла удалены символы, стоящие на 1 и 3 позициях строки b из второго файла (т.е. удалились буквы a и d), причем из третьей строки удалены все символы и в измененный файл записана пустая строка.
^ 4.10.6. Пример выполнения задания-2

  1. Тема и название работы:

Текстовые файлы – Создание проекта Проект-4-10-Лаб.


  1. Задание на разработку проекта и вариант задания:

Создать проект, который вводит из второго файла строку b, построчно вводит все строки первого файла и отображает их на форме, а затем обрабатывает, удаляя из каждой строки первого файла все символы, расположенные на нечетных позициях строки b, используя ранее разработанную для лабораторной работы 4.9 процедуру Обработка(). Результат обработки необходимо отобразить на форме и сохранить в новом(третьем) текстовом файле. Работу с текстовыми файлами осуществить с помощью классов StreamReader, StreamWriter.


  1. Формализация и уточнение задания:




  1. Разработка проекта

    1. Разработка графического интерфейса пользователя

Разработанная форма интерфейса пользователя приведена на рис. 4.10-4.

Для построчного вывода на форму первого текстового файла, удобно использовать элемент управления ListBox. Для вывода на форму нового третьего текстового файла, состоящего из нескольких строк, которые будут прочитаны целиком в одну строку, используется текстовое поле TextBox4, для которого свойство Multiline обязательно должно быть установлено в состояние True и свойство ScrollBars в состояние Vertical для обеспечения возможности вертикальной прокрутки содержимого этого текстового поля. Текстовое поле TextBox3 для вывода на форму только одной строки из второго файла может оставаться со значением свойства Multiline, равным False, также, как и три других текстовых поля TextBox1 и TextBox5 и TextBox6 для ввода путей к текстовым файлам.
Рис. 4.10-4



    1. Установка свойств объектов

Свойства объектов управления разработанной формы студенты могут установить самостоятельно.


    1. Написание программного кода с использованием процедур.

Программный код решаемой задачи представлен на рис. 4.10-5. Процедура Resh()с помощью класса StreamReader построчно считывает содержимое 1 файла, удаляет из строки нужные символы процедурой Обработка()и дописывает обработанную строку в новый 3 файл с помощью класса StreamWriter. Процедура readfile()с помощью класса StreamReader считывает содержимое текстового файла целиком в одну строку. Так как разработанный интерфейс имеет не одну, а несколько кнопок, которые работают со строкой b, содержащей 2 файл, то эта строка должны быть доступна нескольким событийным процедурам, и поэтому в программном коде ее необходимо сделать глобальной (видимой для всех процедур), и объявить в начале программы, до описания всех процедур.

Option Strict On

Option Explicit On

^ Imports System.IO

Public Class Form1

Dim b As String ' Глобальная строка b из второго файла
'Процедура построчного чтения из 1файла и записи в 3файл

Sub Resh(ByVal filename1 As String, ByVal filename3 As String, _

^ ByVal b As String, ByRef L As ListBox)

'создание потока для чтения из исходного файла1

Dim Rf As New StreamReader(filename1)

'создание потока для записи в другой текстовый файл

'Значение True 2-го параметра означает, что будет

'производиться дозапись в конец файла

^ Dim wf As New StreamWriter(filename3, True)

Dim a As String

Try

Do While Not Rf.EndOfStream() 'пока не достигнут конец

'потока

a = Rf.ReadLine() 'чтение строки а из 1 файла

L.Items.Add(a) 'вывод прочитанной строки в ListBox

Обработка(b, a) 'удаление символов из строки а

wf.WriteLine(a) 'запись обработанной строки в новый файл

^ Loop

Catch ex As Exception

MsgBox("Невозможно прочитать данные из файла")

Finally

wf.Flush() 'очистка буфера потока

Rf.Close() 'закрытие потока

wf.Close()

End Try

End Sub

'Процедура чтения из текстового файла целиком в одну строку

Sub readfile(ByVal filename As String, ByRef b As String)

'создание потока для чтения из текстового файла

Dim Rf As StreamReader

Rf = New StreamReader(filename)

Try

b = Rf.ReadToEnd() 'чтение текста из файла в b

Rf.Close() 'закрытие потока

Catch ex As Exception

MsgBox("Невозможно прочитать данные из файла")

End Try

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'перебор нечетных симв. строки b

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
Function vvod(ByVal T As TextBox) As String

Return T.Text

End Function

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
'Кнопка чтения второй строки из второго файла

Private Sub Button1_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button1.Click

Dim ПутьФ2 As String = ""

ПутьФ2 = vvod(TextBox5)

readfile(ПутьФ2, b)

vivod(b, TextBox3)

End Sub

'Кнопка чтения 1 файла и запись обработанных строк в третий файл

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e _

As System.EventArgs) Handles Button3.Click

Dim ПутьФ3 As String = ""

Dim ПутьФ1 As String = ""

ПутьФ1 = vvod(TextBox1)

ПутьФ3 = vvod(TextBox6)

Resh(ПутьФ1, ПутьФ3, b, ListBox1)

End Sub

'Кнопка чтения нового(третьего) файла и вывод его на форму

Private Sub Button2_Click(ByVal sender As System.Object, _

^ ByVal e As System.EventArgs) Handles Button2.Click

Dim ПутьФ3 As String = ""

ПутьФ3 = vvod(TextBox6)

Dim Rez As String = ""

readfile(ПутьФ3, Rez)

vivod(Rez, TextBox4)

End Sub

Private Sub Button6_Click(ByVal sender As System.Object, _

ByVal e As System.EventArgs) Handles Button6.Click

End

End Sub
End Class

Рис. 4.10-5


  1. Выполнение приложения и получение результатов

Выполнить проект и получить результаты на рис. 4.10-6.

Рис. 4.10-6


  1. Доказательство правильности работы программы

Из всех строк исходного первого файла удалены символы, стоящие на 1 и 3 позициях строки b из второго файла (т.е. удалились буквы a и d), причем из третьей строки удалены все символы и в измененный файл записана пустая строка.

^ 4.10.6. Контрольные вопросы по теме
«Текстовые файлы»


  1. Какие классы используются для работы с файлами?

  2. Каким образом можно обработать ошибки времени выполнения?

  3. Что такое потоковый доступ к файлам?

  4. Какими методами можно открывать текстовый файл?

  5. Какими методами можно закрывать текстовый файл?

  6. Какие функции и методы осуществляют операции чтения и записи?

  7. Какие методы используются для обработки строк?


Тема 4.10. ЛР «Текстовые файлы» Страница


Похожие:

Лабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы» iconЛабораторная работа № Установка и настройка ос семейства Windows...
Лабораторная работа № Изучение сетевых средств операционной системы ms windows. Диагностика сети средствами операционной системы....
Лабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы» iconЛабораторная работа №4
Цель: Так как лабораторная работа разделена на варианты, то у данной работы две цели
Лабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы» iconЛабораторная работа №3 Лабораторная работа №3 " анализ сетевого траффика "
Знакомство со структурой тср/ip-пакетов и с составом его отдельных частей – заголовочной части, блока данных и трейлером
Лабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы» iconКонтрольная работа №1 Контрольная работа №2 Лабораторная работа №1...
Для допуска к сдаче экзамена за первый семестр студент должен иметь оценки «зачтено» за все письменные работы этого семестра
Лабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы» iconКонтрольная работа №1 Контрольная работа №2 Лабораторная работа №1...
Для допуска к сдаче экзамена за первый семестр студент должен иметь оценки «зачтено» за все письменные работы этого семестра
Лабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы» iconЛабораторная работа №5. Эксперимент лабораторная работа №6 Раздел...
Цель: Выявление типов поведения студентов (коллег) в дискуссии (наблюдение по схеме Р. Бейлза)
Лабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы» iconЛабораторная работа №1 «Экономическое обоснование нир»
Лабораторная работа № Экономическая оценка нир (Определение текущих затрат на проведение нир)
Лабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы» iconТема: «Лабораторная работа»

Лабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы» iconТема: Лабораторная работа «Немецкие поэты»

Лабораторная работа по теме «Тема 10. Лабораторная работа «Текстовые файлы» iconЛабораторная работа № Групповые политики 50 Лабораторная работа №10....
Предлагаемый лабораторный практикум дополняет лекционный курс по дисциплине «Сетевое администрирование на основе Microsoft Windows...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2014
контакты
skachate.ru
Главная страница