Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Теоретическая часть. Лабораторная работа №15. Создание текстового редактора




ЛАБОРАТОРНАЯ РАБОТА №15. Создание текстового редактора

Вопросы для контроля

1. Какой метод позволяет упорядочивать дочерние окна в приложении? Какие значения он имеет?

2. Укажите формат вызова общей процедуры. В каких случаях он используется?

3. Какой объект Visual Basic используется для создания панели инструментов? Укажите его значимые свойства.

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

Для работы с текстом в Visual Basic имеется более функциональный элемент, чем Text Box – компонент Rich TextBox . Его можно увидеть на панели инструментов Tool Box, если установить в окне Properties на вкладке Controls галочку напротив компонента Microsoft Rich TextBox Control 6.0 (SP3).

Вывод на экран набора стандартных окон для выполнения операций открытия и сохранения файлов, выбора цвета и характеристик шрифта обеспечивает компонент CommonDialog , который также можно увидеть на панели инструментов, установив галочку напротив компонента Microsoft Common Dialog Control 6.0.

Методы, свойства и события компонента Common Dialog

Таблица 15.1

  Название Значение
Методы ShowOpen Выводит на экран диалоговое окно открытия файла
ShowSave Выводит на экран диалоговое окно сохранения файла
ShowPrint Выводит на экран диалоговое окно вывода на принтер
ShowColor Выводит на экран диалоговое окно выбора цвета
ShowFont Выводит на экран диалоговое окно выбора характеристик шрифта
Clear Очищает Буфер обмена
SelText Помещает в Буфер обмена текстовые данные
Свойства CancelError Включает формирование ошибки при щелчке на кнопке <Cancel>
Flags Значения этого свойства задают значения диалогового окна
Filter Задает типы файлов, которые будут показаны в списке файлов диалогового окна
FileName Имя файла
SelText Выделенный текст
FontName Тип шрифта
FontSize Размер шрифта
FontColor Цвет шрифта
FontBold Жирный
FontItalic Курсив
FontStrikethru Зачеркнутый
FontUnderline Подчеркнутый
PrintQuality Качество печати
PaperSize Размер бумаги
Orientation Ориентация бумаги
Событие Change Сообщает об изменении содержимого объекта

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

Рассмотрим более подробно формат свойства Filter и свойство Flags.

При использовании стандартного диалогового окна Save as свойство Flags имеет множество значений. В данной работе будут рассмотрены два из них - &H2 и &H4, описание которых приведено в Таблице 15.2.

Таблица 15.2

Имя константы Значение Описание
CdlOFNOverwritePrompt &H2 Если файл с набранным именем уже существует, появляется окно сообщения с предупреждением
CdlOFNHideReadOnly &H4 Из диалогового окна Save As исчезает CheckBox “Read Only” (только для чтения)

 

Использование стандартного диалогового окна Open отличается от использования окна Save as только значением свойства Flags и оператором, использующим значением свойства FileName. Описание значения свойства Flags для окна Open приведено в Таблице 15.3.

Таблица 15.3

Имя константы Значение Описание
CdlOFNFileMustExist &H1000 Если файл с набранным именем уже существует, появляется окно сообщения с предупреждением и действие отменяется
CdlOFNHideReadOnly &H4 Из диалогового окна Save As исчезает CheckBox “Read Only” (только для чтения)

 

Все значения записываются в одном операторе присваивания и отделяются друг от друга логическим оператором OR. Для задания значений свойства Flags можно использовать как константы, так и значения.

Свойство Filter задает типы файлов, которые будут показаны в списке файлов диалогового окна Save As (Сохранить как) или Open (Открыть).

Формат задания значений свойства Filter

Объект.Filter = “Описание 1|Фильтр1|Описание2|Фильтр2…”

Здесь Объект – имя объекта CommonDialog;

Описание 1 – описание фильтра 1, этот текст появится в списке типов файлов в окне Save As Type;

Фильтр 1 – строка символов, определяющая расширение имени файла (*.txt – файлы с расширением txt; *.doc – файлы с расширением doc и т.д.).

Описание фильтров и фильтры разделяются символом |. Справа и слева от этого символа не должно быть пробелов.

Текстовые файлы бывают нескольких типов

Различают файлы трех типов:

· файлы с последовательным доступом (текстовые);

· файлы с произвольным доступом;

· двоичные файлы.

Файлы с последовательным доступом состоят из записей переменной длины. Они могут читаться только с самого начала до конца. Запись нельзя прочитать из середины файла. Каждая запись является строкой текста, которая заканчивается специальными символами-разделителями.

Файлы с произвольным доступом обладают заданной структурой и состоят из записей. Каждая запись в файле имеет определенный размер и номер. Доступ к данным в файле с произвольным доступом осуществляется именно по номеру записи. Данные из файла такого типа читаются и записываются записями. Пользователь может создать файл с произвольным доступом своей собственной структуры.

Формат операторов и событий для различных типов файлов.

Таблица 15.4

  Файлы с последовательным доступом Файлы с произвольным доступом
Операторы Open Имя_файла For Режим_доступа As #Номер_файла Режимы доступа: - Input (файл открывается для чтения из него информации; если файл отсутствует, возникает сообщение об ошибке); - Output (файл открывается для записи; если файл отсутствует, возникает сообщение об ошибке; если файл уже существует, он удаляется с диска и создается заново); Open Имя_файла [For Random] As #Номер_файла Len=Длина_записи Имя_файла – имя открываемого файла. Если путь к файлу не указан, файл открывается в текущей папке. For Random – режим доступа единственно возможный; не обязателен, т.к. этот параметр устанавливается по умолчанию. Номер_файла – номер файла Длина_записи – длина записи в байтах
- Append (файл открывается для записи в него информации; если файл уже существует, запись производится в конец файла; если файл не существовал на диске, то он создается) В отличие от файла с последовательным доступом, здесь необходимо обязательно указывать длину записи. Если длина неизвестна, ее можно вычислить с помощью функции Len
Close [#Номер_файла][, #Номер_файла][,#Номер_файла Оператор закрывает файлы, номера которых указаны в списке. Если номера файлов не указаны, закрываются все файлы, открытые в данный момент. Файлы необходимо закрывать сразу после того, как работа с ними закончена.
Line Input # Номер_файла, Имя_переменной Оператор читает из файла строку текста и присваивает прочитанное значение переменной типа String. Признаком конца строки служит символ возврата каретки или комбинация символов возврата каретки и конца строки. Если файл создавался в программе Блокнот, символ возврата каретки формируется при нажатии на клавишу [Enter]. Если файл создавался с помощью программы Visual Basic, этот символ добавляется в файл операторами Write# или Print#. В отличие от оператора Line Input # оператор Input # может читать не всю текстовую строку, а только ее часть – поле. Поля отделяются друг от друга запятой. Если текст поля заключен в кавычки, то они при чтении файла отбрасываются. Отбрасывается также запятая, разделяющая поля. Put #Номер_файла, [Номер_записи] Переменная Номер_файла – номер файла, аналогичный номеру в операторе Open Номер_записи – целочисленное выражение, которое задает номер записи в файле. Если номер записи не указан, то по умолчанию принимается текущая позиция указателя записи. Переменная – переменная, указывающая источник записываемых данных При использовании оператора Put #, необходимо иметь ввиду, что данные в записи с указанным в операторе номером будут заменены теми, которые записываются в файл. Новая запись с данными не создается. Для добавления записей в файл необходимо указывать номер записи, который на единицу больше номера последней записи. В этом случае запись будет добавлена в файл, а не заменена. Для удаления данных существует два способа: 1) очистить соответствующие поля указанных записей, т.е. записать в них пустые значения. Однако в этом

Окончание таблицы 15.4

  Файлы с последовательным доступом Файлы с произвольным доступом
  Print #Номер_файла, [Список_вывода] Список вывода – перечень строковых или числовых выражений, значения которых записываются в файл. Выражения в списке разделяются запятой, пробелами или точкой с запятой. Этот оператор после каждого элемента списка вставляет в файл один пробел, если выражения в списке вывода разделены точкой с запятой, или несколько пробелов, если выражения разделены запятой. После того, как записан последний элемент из списка вывода, в файл вставляется комбинация символов «конец строки» и «перевод каретки». Если список вывода опущен (запятая после номера файла при этом сохраняется), в файл вставляется пустая строка. Файл, созданный с помощью оператора Print#, читается обычно оператором Line Input# случае в файле остаются пустые записи, в связи с чем ресурсы (дисковое пространство) используются нерационально 2) передать данные в новый файл, пропуская пустые записи. В этом случае порядок действий таков: · создать новый файл с помощью оператор Open; · переписать все непустые записи в новый файл, используя оператор Put #; · закрыть исходный файл и удалить его при помощью оператора Kill (см. ниже); · переименовать новый файл, дав ему имя исходного файла с помощью оператора Name (см. ниже) В результат получается тот же самый файл, но без пустых записей. При этом экономятся дисковое пространство и время поиска данных в файле
Функции Write #Номер_файла, [Список_вывода] Список вывода – перечень строковых или числовых выражений, значения которых записываются в файл. Выражения в списке разделяются запятой. Этот оператор после каждого элемента списка вставляет в файл запятую. Строка текста записывается в кавычках. После того, как записан последний элемент из списка вывода, в файл вставляется комбинация символов «конец строки» и «перевод каретки». Если список вывода опущен (запятая после номера файла при этом сохраняется), в файл вставляется пустая строка. Файл, созданный с помощью оператора Write#, читается обычно оператором Input#. Kill Имя_файла Имя_файла – полное имя файла
Name Старое_имя_файла Новое_имя_файла В качестве имен файлов указываются полные имена файлов
Get #Номер_файла, [Номер_записи] Переменная Номер_файла – номер файла Номер_записи – номер записи в файле. Если параметр Номер_записи не указан, считывается текущая запись Переменная – переменная.
Для того, чтобы выяснить, прочитан ли файл до конца, используется функция EOF: EOF (Номер_открытого_файла) Номер_открытого_файла – единственный аргумент функции. Функция возвращает значение True, если достигнут конец файла, и значение False, если конец файла не достигнут Для вычисления номера последней записи нужно размер файла поделить на длину записи. Для вычисления размера (длины) файла (в байтах) используют функцию LOF: LOF (Номер_открытого_файла) Номер_открытого_файла – единственный аргумент функции. Возвращаемое функцией значение имеет тип Long.

 




Поделиться с друзьями:


Дата добавления: 2014-12-23; Просмотров: 381; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.011 сек.