|
Создание приложений с потоковыми файламиСтр 1 из 3Следующая ⇒ Тема 10 Создание приложений с потоковыми файлами
Основные понятия
Использование классов StreamReader, StreamWriter и объекта My.Computer.FileSystem для работы с текстовыми файлами
Примеры создания проектов (приложений), Работающих с потоковыми файлами
4.10.6. Тестовые задания
Лабораторная работа по теме «Создание приложений, работающие с потоковыми файлами»
4.10.7.1. Контрольные вопросы
Основные понятия
Данные в приложениях VB можно не только вводить с клавиатуры и отображать на экране, но и читать из файла, где они хранятся, и записывать в файл. Файл – это поименованная совокупность любых данных, размещенная на внешнем запоминающем устройстве, хранимая, пересылаемая и обрабатываемая как единое целое. Файл может содержать программу, числовые данные, текст, закодированное изображение и пр. Физически файлы реализуются как участки памяти на внешних носителях, например, на магнитных дисках или CD-ROM. Каждый файл должен иметь имя. К файловой системе имеет доступ любая прикладная программа, для этого во всех языках программирования, в том числе и в VB, имеются специальные средства в виде методы классов. NET Framework для работы с файлами. По способу доступа к данным различают файлы последовательного доступа, произвольного доступа и двоичные. В файлах первого вида доступ к информации осуществляется последовательно от начала до конца файла, в файлах произвольного доступа – либо последовательно, либо в произвольном порядке, а в двоичных файлах – побайтно. Текстовые файлы состоят из одной или более строк, слов или символов. Обычные текстовые файлы определены в MS Windows как Текстовые документы и имеют расширение *.txt. Работа с любым файлом, в том числе с текстовыми файлами, состоит из трех этапов: · открытие файлов; · чтение или запись информации из файла или в файл; · закрытие файла.
Поток – это программный виртуальный канал для обмена данными между приложением и Windows или другим приложением. При взаимодействии приложения с Windows потоки, как правило, используются для работы с устройствами и представляют собой абстрактный уровень между приложением и устройством, что позволяет скрыть от приложения низкоуровневый механизм доступа к устройствам, упростить и унифицировать процесс написания программ, использующих ввод/вывод. Поток представляется программисту как логическое устройство приема-передачи информации. Потоки бывают входные и выходные. Данные, поступающие в поток, как правило, буферизуются, т.е. помещаются в специальный буфер данных, в котором они могут храниться. Передача данных из буфера получателю данных происходит при запросе от получателя или в случае заполнения буфера данных. Если получатель производит чтение данных, когда буфер потока пуст, то данная ситуация расценивается как достижение конца потока. Поток для работы может быть отрыт в текстовом или бинарном режиме. С потоками можно производить следующие действия: открывать и закрывать потоки; посылать данные в поток и получать данные из потока; анализировать ошибки потокового ввода-вывода; управлять буферизацией потока и размером буфера; позиционировать указатель чтения-записи данных в потоке (если возможно). Все потоки и методы для работы с ними связаны с понятием файл. Отличие потока от файла заключается в том, что поток представляет собой абстрактный уровень доступа программиста к физическому устройству, а файл представляет собой способ хранения информации на этом физическом устройстве. Операция открытия файла связывает поток с определенным файлом, операция закрытия разрывает эту связь. Каждый поток, связанный с файлом, имеет управляющую структуру типа FILE. Указатель на данную структуру, называемый также файловой переменной, является связующим звеном между потоком и файлом, работа с потоком, а значит, и со связанным с ним файлом, осуществляется через связанный с потоком указатель на файловую переменную. Грубо обобщая, можно разделить функции ввода/вывода в каркасе.NET Framework на две широкие категории, не зависящих от устройства хранения данных – это запись и чтение. Данные могут рассматриваться как поток байтов или символов. Данные также можно рассматривать как набор объектов. Класс Stream (Поток, Абстрактный файл) – абстрактный класс, который является базовым для чтения и записи байтов в некоторое хранилище данных типа файла. Этот класс поддерживает синхронные и асинхронные чтение и запись. Асинхронные методы обсуждаются ниже в данной главе. Класс FileStream, который является производным от класса Stream, предоставляет операции чтения и записи последовательности байтов в файл. Конструктор FileStream создает экземпляр потока. Перегруженные методы класса Stream (Поток, Абстрактный последовательный файл) осуществляют чтение и запись в файл. Для загрузки в текстовое поле или строку содержимого текстового файла, а также для записи строковых данных в файл в VB можно использовать потоковый доступ: · с использованием методов класса System.IO библиотеки · с использованием объекта My.Computer.System.
При работе с файлами во время выполнения программы могут возникать различные непредвиденные ошибочные ситуации. Рассмотрим средства VBдля обработки ошибок времени выполнения. Ошибки времени выполнения (также называемые исключениями) возникают при исключительных условиях работы - например, из-за отсутствия диска в дисководе или неправильного заданного пути при открытии файла. Блоки кода, обрабатывающие такие ошибки, называются структурными обработчиками ошибок (или структурными обработчиками исключений). Их можно использовать для распознавания ошибок времени исполнения при их возникновении в программе и настройки программы так, что она снова сможет получить управление и продолжить работу. Для этого имеется блок Try…Catch…End Try – синтаксическая конструкция VB для обработки ошибок. Ошибка времени исполнения возникает тогда, когда VB пытается выполнить оператор, который по какой-то причине не может быть выполнен в том виде, в котором он написан. Это не значит, что VB недостаточно «умен», чтобы справиться с проблемой; это значит, что компилятору VB не сказали, что делать, если что-то пойдет не так. Можно написать специальные процедуры VB, называемые структурными обработчиками ошибо к, которые будут реагировать на ошибки времени исполнения. Обработчик ошибок отслеживает ошибку времени исполнения и говорит программе, как продолжать работу при возникновении этой ошибки. Обработчики ошибок помещаются в процедуры событий там, где существует возможность возникновения проблемы, или в общие функции или подпрограммы, специально предназначенные для обработки ошибок. Как предполагает их название, обработчики ошибок обрабатывают ошибку с помощью оператора Try…Catch…End Try и специального объекта отслеживания ошибок – экземпляра класса Exception. Например, если ошибка времени исполнения произошла при загрузке файла с диска, обработчик ошибок может отобразить собственное сообщение об ошибке, которое укажет на проблему. Оператор Try необходимо поместить в процедуру события непосредственно перед оператором, в котором может произойти непредвиденная ситуация, а блок Catch следует непосредственно за ним и содержит операторы, которые необходимо выполнить, если произойдет ошибка времени исполнения. Также можно использовать некоторые дополнительные операторы, такие, как Finally, а также вложенные блоки кода Try…Catch…End Try. Базовый синтаксис обработчика исключений Try…Catch…End Try может иметь следующий формат:
где Try, Catch и End Try – это обязательные ключевые слова, а Finally и операторы, которые стоят за ним, необязательны. В Примерах 4.10.2-1 и 4.10.2-2 продемонстрирована ситуация возникновения ошибки времени выполнения, связанная с открытием файла.
Вопросы, подлежащие изучению
1) Понятие файла. Особенности работы с текстовыми файлами. 2) Основные операторы VB для работы с текстовыми файлами. 3) Средства обработчика ошибок времени исполнения. 4) Классы и объекты VB для работы с текстовыми файлами. 5) Использование классов StreamReader, StreamWriter и объекта My.Computer.FileSystem для работы с текстовыми файлами.
4.10.7.2. Общее задание на разработку проекта
1) Изучите вопросы создания приложений, работающие с потоковыми файлами (Тема 10). 2) Создайте приложение с именем Проект-10. 3) Выберите вариант задания из таблицы по усмотрению преподавателя. 4) Создайте с помощью стандартной программы Microsoft Windows «Блокнот» текстовый файл из 5-7 строк с исходными данными, соответствующими варианту задания. 5) Разработайте интерфейс пользователя, предусмотрев в нем несколько кнопок: для ввода данных из текстового файла, для обработки данных, для вывода результата в текстовый файл. 6) Напишите программный код процедуры пользователя для обработки текстового файла, которая должна вызывать процедуру обработки заданной строки (см. вариант задания лабораторной работы № 9), а также процедур для чтения и записи данных в/из текстового файла. Обмен данными между пользовательскими процедурами должен осуществляться через параметры, без глобальных переменных. 7) Разработайте проект, с помощью которого можно осуществить ввод исходных данных из текстового файла и отобразить их на форме, а затем обработать в соответствии с индивидуальным заданием. 8) Допишите программный код проекта, в котором событийные процедуры должны содержать только операторы вызова пользовательских процедур. 9) Выполните приложение и получите результат. 10) Докажите правильность результата. Варианты индивидуальных заданий
Содержание отчёта
1) Тема и название лабораторной работы; 2) Фамилия, имя студента, номер группы, номер варианта. 3) Задание на разработку проекта. 4) Формализация и уточнение задания. 5) Элементы, разрабатываемого проекта: 5.1) графический интерфейс пользователя; 5.2) таблица свойств объектов; 5.3) схема алгоритма решаемой задачи; 5.4) программный код проекта. 6) Результаты выполнения проектов. 7) Доказательство правильности работы программы. 4.10.7.5. Первый пример выполнения задания
1) Тема и название лабораторной работы: Работа с текстовыми файлами; Чтение и запись информации из файла/в файл с помощью объекта My.Computer.FileSystem. 2) Фамилия, имя студента, номер группы, номер варианта: Иванов И., БИН1405, вариант 13. 3) Задание на разработку проекта: Создайте проект, который реализует ввод из файла строк a и b, отображает их на форме, а затем обрабатывает, удаляя из строки a все символы, входящие в строку b и расположенные на нечетных позициях строки b. Используйте разработанную для лабораторной работы 9 процедуру Обработка(). Результат обработки вышеприведенной задачи необходимо отобразить на форме и перезаписать в первый текстовый файл. Работу с текстовыми файлами осуществить с помощью объекта My.Computer.FileSystem. 4) Формализация и уточнение задания: Формализация не требуется.
5) Элементы, разрабатываемого проекта: 5.1) Графический интерфейс пользователя: Форма приложения представлена на рис. 4.10.7-1.
Рис. 4.10.7-1. Форма проекта Проект 10-1
5.2) Таблица свойств объектов: Для вывода на форму текстового файла, состоящего из нескольких строк, используются текстовые поля TextBox3 и TextBox5, для которых свойство Multiline должно быть установлено в состояние True. Кроме того, требуется установить для этих полей свойство ScrollBars в состояние Vertical для обеспечения возможности вертикальной прокрутки содержимого текстовых полей. Текстовое поле TextBox4, предназначенное для вывода на форму только одной строки из второго файла может оставаться со значением свойства Multiline, равным False, так же, как и два других текстовых поля TextBox1 и TextBox2, служащие для ввода путей к текстовым файлам. Определите, установите и сведите в табл. свойства объектов самостоятельно. 5.3) Схема алгоритма решаемой задачи: Схемы отдельных алгоритмов представлены в Теме 4.10. 5.4) Программный код проекта: Программный код проекта представлен на рис. 4.10.7-2.
Рис. 4.10.7-2. Программный код проекта Проект 10-1
Программный код, решаемой задачи содержит процедуры vvod(), Тема 10 Создание приложений с потоковыми файлами
Основные понятия
ЧТО ПРОИСХОДИТ ВО ВЗРОСЛОЙ ЖИЗНИ? Если вы все еще «неправильно» связаны с матерью, вы избегаете отделения и независимого взрослого существования... Конфликты в семейной жизни. Как это изменить? Редкий брак и взаимоотношения существуют без конфликтов и напряженности. Через это проходят все... Что делать, если нет взаимности? А теперь спустимся с небес на землю. Приземлились? Продолжаем разговор... Живите по правилу: МАЛО ЛИ ЧТО НА СВЕТЕ СУЩЕСТВУЕТ? Я неслучайно подчеркиваю, что место в голове ограничено, а информации вокруг много, и что ваше право... Не нашли то, что искали? Воспользуйтесь поиском гугл на сайте:
|