Полная версия

Главная arrow Информатика arrow Базовые средства программирования на Visual Basic в среде VisualStudio. Net

  • Увеличить шрифт
  • Уменьшить шрифт


<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>

Примеры создания проектов (приложений), работающих с потоковыми файлами

Пример 10.3-1. Дан текстовый файл, каждая строка которого содержит только слова из русских букв, разделенных одним или несколькими пробелами. Разработать программный код трех процедур:

  • процедуры-функции с необходимыми формальными параметрами, которая получает строку и переставляет ее символы в обратном порядке;
  • процедуры-подпрограммы с необходимыми формальными параметрами, которая построчно считывает текст из исходного файла с помощью

потокового доступа и построчно записывает в новый файл преобразованные строки исходного файла;

• событийной процедуры, в которой осуществляется ввод имен файлов и вызов разработанных ранее процедур и функций.

Форма разрабатываемого приложения представлена на рис. 10.3-1.

Форма проекта Пример 10.3-1

Рис. 10.3-1. Форма проекта Пример 10.3-1

На первом этапе необходимо создать процедуру-функцию Ре nevo not ( ), которая, получив через параметр строку S, с помощью регулярного цикла с отрицательным шагом записывает в новую строку temp все символы исходной строки S и возвращает созданную строку temp в качестве результата.

На втором этапе необходимо создать процедуру-подпрограмму Re s h ( ), которой через параметры передаются две строки, с именами исходного и нового файлов. В Resh ( ) необходимо создать два потоковых объекта: Rf - типа StreamReader, служащий для чтения исходного файла и wf - типа StreamWniten, необходимый для записи в новый файл.

Так как запись в новый файл должна производиться построчно, то второй параметр потока wf должен быть равным True, который означает, что при каждом использовании метода WriteLine будет производиться добавление строки в существующий файл.

Далее в цикле считывается очередная строка исходного файла, и из нее с помощью процедуры DelProb( ) удаляются лишние пробелы и создается массив слов Mas( ). Затем во внутреннем цикле каждое слово из массива Mas( ) переворачивается наоборот с использованием функции Perevorot( ).

После завершения внутреннего цикла полученный массив перевернутых слов рассматриваемой строки с помощью метода Doin ( ) склеивается через один пробел в одну новую строку line2, которая и записывается в новый файл.

Программный код приложения представлен на рис. 10.3-2.

Программный код проекта Пример 10.3-1

Рис. 10.3-2. Программный код проекта Пример 10.3-1

Пример 10.3-2. Задан текстовый файл, каждая строка которого содержит только слова из русских букв, разделенных одним или несколькими пробелами. Написать программный код четырех процедур:

  • • процедуры-функции Perevorot( ) с необходимыми параметрами, которая получает строку и переставляет ее символы в обратном порядке;
  • • процедуры-подпрограммы Res he nie( ), с необходимыми параметрами, которая считывает текст из файла с помощью объекта Му. Computer. FileSystem, и для каждой строки исходного файла переворачивает каждое слово наоборот с использованием процедуры-функции и записывает в новую строку через один пробел по отдельности перевернутые слова исходной строки;
  • • процедуры vivodFile( ) с необходимыми параметрами, которая полученный в п.2 результат с помощью предыдущей процедуры записывает в новый файл;
  • • событийную процедуры, в которой будет осуществляться ввод имен файлов, вызов составленных процедур и вывод результатов.

Программный код решения задачи представленна рис. 10.3-3

Программный код проекта Пример 10.3-1

Рис. 10.3-3. Программный код проекта Пример 10.3-1

Первое задание реализует процедура-функция Реrevorot ( ), которая, получив через формальный параметр по значению строку S, с помощью регулярного цикла с отрицательным шагом записывает в новую строку temp все символы исходной строки S и возвращает созданную строку temp в качестве результата.

Второе задание реализует процедура Reshenie( ), которой через формальные параметры передается строка filename, содержащая имя исходного файла и по ссылке возвращаются строка si с исходным файлом и строка S2 с перевернутыми словами, которую надо будет записать в новый файл.

В ней сначала с помощью объекта Му. Computer. FileSystem весь исходный файл считывается целиком в одну строку Si, затем полученная строка с помощью метода Split( ) разбивается на массив строк

Stnoki( ) по признаку конца строки (vbNewLine). Далее во внешнем цикле из каждой строки исходного файла с помощью процедуры DelPnob( ) удаляются лишние пробелы, и строка разбивается на массив слов slova( ) по признаку одного пробела. Во внутреннем цикле каждое слово переворачивается наоборот с использованием процедуры- функции Реrevonot ( ) и записывается в новую строку S2 через один пробел. После завершения внутреннего цикла в новую строку S2 добавляется признак конца строки (vbNewLine) для разделения строк в новом файле, и далее повторение внешнего цикла для обработки очередной строки исходного файла.

Третье задание реализует процедура vivodFile( ), которой через параметры передается строка filename, содержащая имя нового файла, и строка S с перевернутыми словами для записи в новый файл.

 
<<   СОДЕРЖАНИЕ ПОСМОТРЕТЬ ОРИГИНАЛ   >>