Теоретическая часть. Для работы с текстом в Visual Basic имеется более функциональный элемент, чем Text Box – компонент Rich TextBox
Для работы с текстом в 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. |
Дата добавления: 2015-06-12; просмотров: 876;