Справочная информация2014 (981801)
Текст из файла
Справочная информация
1. Модули пользователей
Модуль пользователя – это отдельная программная единица.
Назначение.
Для создания личных библиотек или программ большого размера (размер программы ограничен 64 Кбайт).
Структура модуля
unit <имя модуля>;
Interface //Раздел описаний
Uses <Список подключаемых модулей>;
Const <Список констант>;
Type <Описание типов>
Var <Объявление переменных>;
<Заголовки процедур>
<Заголовки функций>
{имена объектов этого раздела доступны в основной программе и других модулях, к которым подключен данный модуль}
Implementation //Раздел реализации
Uses <Список подключаемых модулей>;
Const <Список констант, используемых в данном модуле>;
Type <Описание типов, используемых в данном модуле>;
Var <Объявление переменных, используемых в данном модуле>
<Описание процедур и функций, заголовки которых указаны в разделе interface>
<Описание процедур и функций, которые предназначены для использования только в данном модуле>
Initialization //Раздел инициализации, необязательный
<Операторы>
{Операторы, выполняемые один раз при первом обращении к модулю. Например, задание начальных значений переменных, открытие файлов}
Finalization //Раздел завершения, необязательный
<Операторы>
{Операторы, выполняемые при любом завершении работы модуля. Например, закрытие файлов, удаление временных файлов, освобождение памяти}
end.
Любой раздел модуля может быть пустым, но ключевые слова Interface и Implementation должны присутствовать. Раздел Finalization может быть, если есть раздел Initialization.
Создание модуля.
Выполняются действия с помощью меню Turbo Delphi: FILE – NEW – UNIT
. При этом в окне проекта в разделе uses появится запись
Unit1 in 'Unit1.pas';
При сохранении проекта стандартное имя модуля Unit1 может быть заменено любым другим именем.
2. Функции преобразования и поиска
function AnsiUpperCase(const S: string):string
преобразует символы строки S к верхнему регистру; применима к русским текстам.
function LowerUpperCase(const S:string): string
преобразует символы строки S к нижнему регистру; применима к русским текстам.
function FloatToStr(V: Extended): string
преобразует действительное число V в строку.
function FloatToStrF(V,f,k,m): string
преобразует действительное число V в строку с форматной записью.
f-формат, определяет способ изображения числа:
ffGeneral – универсальный, ffExponent – научный, ffFixed – с фиксированной точкой;
k – общее число цифр числа;
m – число цифр в дробной части числа.
function IntToStr(K: Integer): string
преобразует целое число K в строку.
function StrToFloat(const S: string): Extended
преобразует строку S в действительное число.
function StrToInt(const S: string): Integer
преобразует строку S в целое число.
function Pos( SubStr: string; S: string): Integer
возвращает позицию (индекс) первого вхождения подстроки SubStr в строку S.
Если SubStr нет в S, возвращается 0.
function FindFirst(const Path: string; Attr: Integer; var F: TSearchRec): Integer; Обеспечивает поиск файлов, соответствующих шаблону и атрибутам
Параметр Path определяет путь доступа к каталогу и маску искомых файлов. Функция вернёт значение 0, если в этом каталоге найдётся хотя бы один файл, соответствующий маске (например, задание первого параметра равным ‘D:\temp\*.txt’ ,будет задавать поиск текстовых файлов в каталоге D:\txt). Параметр Attr задаёт атрибуты искомых файлов: скрытый, системный, каталог и др. При поиске файлов с любой комбинацией атрибутов этот параметр должен иметь значение $3f. Выходной параметр F является записью типа TsearchRec, полями которой, в частности, являются поле с именем Name, представляющее строку с именем и типом найденного файла, поле с именем Size, представляющее размер файла в байтах.
Значение параметра F нельзя менять. Он потребуется при вызове процедуры FindNext (см. ниже), продолжающей поиск файлов.
function FindNext(var F: TSearchRec): Integer;
Функция вернёт значение 0, если в каталоге найдётся хотя бы ещё один файл, соответствующий маске. При этом будет представлять характеристики этого найденного файла.
procedure FindClose(var F: TSearchRec);
Процедура завершает поиск файлов.
3. Функции организации диалога
function MessageDlg(const Msg: string; DlgType: TMsgDlgType; Buttons: TMsgDlgButtons; HelpCtx: Longint): Word;
Функция отображает окно, в котором пользователю задается какой-то вопрос и анализируется полученный ответ, зависящий от нажатой кнопки.
Соответствующими фактическими параметрами должны быть
-
Msg – строка, выводимая в окно сообщения,
-
DlgType – вид окна сообщения. В каждом окне отображаются стандартный текст,
а ниже соответствующая пиктограмма определяющее текст заголовка окна и рисунок значка на окне (например, Confirm и ).
Возможные значения и текст на соответствующей пиктограмме:
-
mtWarning – окно предупреждений, заголовок Warning и черный восклицательный знак на желтом фоне;
-
mtError – окно ошибок, заголовок Error и красный круг с белым крестом;
-
mtInformation – информационное окно, заголовок Information и буква i на белом фоне;
-
mtConfirmation – окно подтверждения, заголовок Confirm и знак вопроса на белом фоне;
-
mtCustom – заказное окно, пиктограмма отсутствует, а в качестве заголовка используется имя файла приложения. Например, Project 1
-
Buttons –множество значений, определяющее какие кнопки будет содержать информационное окно. Значения параметра выбираются из множества типа TMsgDlgBtn = [mbYes, mbNo, mbOK, mbCancel, mbAbort, mbRetry, mbIgnore, mbAll, mbNoToAll, mbYesToAll, mbHelp]. Значения можно задавать по отдельности или сразу несколько, заключенными в квадратные скобки. Среди множества значений определены три константы, соответствующие часто используемым сочетаниям: mbYesNoCancel, mbOKCancel, mbAbortRetryIgnore. Эти константы являются предопределенными множествами и при исползовании их не надо заключать в квадратные скобки.
-
HelpCtx – номер страницы справочной системы (целое число), созданной пользователем и вызываемой при нажатии клавиши <F1>. При отсутствии такой страницы значение параметра задается равным 0 (нет справки).
-
Функция возвращает число, соответствующее нажатой кнопке (каждому значению
базового типа соответствует предопределенная именованная константа) вида:
mrYes, mrNo, mrOK, mrCancel, mrAbort, mrRetry, mrIgnore, mrAll, mrNoToAll, mrYesToAll, mrHelp
-
Примеры записи.
1. Диалог при окончании работы приложения
If MessageDlg('Закончить работу с приложением?', mtConfirmation,
[mbYes, mbNo],0) = mrYes then
Begin
MessageDlg(‘Работа приложения закончена’; mtInformation, [mbOK],0);
Close;
End;
Первый вызов MessageDlg приводит к отображению окна типа mtConfirmation с вопросом о завершении приложения. При нажатии пользователем кнопки Yes выводится второе окно типа mtConfirmation с сообщением о завершении.
2. Возникла ситуация, когда решение должен принять пользователь
case MessageDlg('Продолжить работу?', mtConfirmation, [mbYes, mbNo],0) of
mrYes:; // продолжить выполнение процедуры
mrNo: exit; //выход из процедуры
end;
3. Необходимо принять решение при закрытии файла
//Если текст новый или был изменен, то открывается окно диалога 'Сохранить данные?'[mbYes, mbNo, mbCancel]
if Memo1.Modified then begin
d:=MessageDlg('Сохранить данные?', mtConfirmation,[mbYes, mbNo, mbCancel], 0);
case d of
mrYes: begin //да, сохранить!
if s<>'' then // сохранить в том же, редактируемом файле
Memo1.Lines.SaveToFile(S)
else // сохранить в файле, который следует выбрать в диалоге SaveAs...
N#Click(Self);//вызов обработчика сохранить как
//считать, что текст не модифицирован
Memo1.Modified:=false;
End;
mrCancel://не сохранять и вернуться к редактированию
exit;
mrNo:;//не сохранять
end;//case
end;//if
function ShowMessage(const Msg: string): string;
Отображает простое окно сообщения Msg и кнопкой ОК.
-
Пример записи.
ShowMessage('Список пуст')
function InputQuery(const ACaption, APrompt: string; var Value: string): Boolean;
Отображает окно диалога с заголовком ACaption, с пояснением, что должен ввести пользователь APrompt в строке ввода, соответствующей параметру Value, и кнопками OK и Cancel. При щелчке на кнопке OK функция вернёт значение true и текст из поля в параметре Value. При щелчке на кнопке Cancel функция вернёт значение false и пустую строку в параметре Value.
-
Пример записи.
Диалог при задании номера группы
Group := 'ИУ2-21':
Group :=InputQuery ('Введите номер группы', 'Например', '');
function InputBox(const ACaption, APrompt, ADefault: string): string;
Отображает окно диалога с заголовком ACaption, с пояснением, что должен ввести пользователь APrompt в строке ввода, в которой изначально будет отображен текст, заданный параметром ADefault, и кнопками OK и Cancel. При щелчке на кнопке OK функция возвращает значение текста из поля ввода, а при щелчке на кнопке Cancel функция вернёт значение параметра ADefault даже если пользователь изменил текст в поле ввода.
-
Пример записи.
Диалог при задании имени файла
S:= InputBox ('Ввод имени файла', 'Введите имя файла', '');
4. Базовые компоненты
TOpenDialog (вкладка Dialogs)
Назначение - диалоговое окно для выбора имени открываемого файла.
Основные свойства
FileName:TfileName - строка, представляющая спецификацию (имя) выбранного файла.
InitialDir: String – задает текущий каталог при открытии диалога.
Filter: String S – задает список масок, в соответствии с которыми выбираются имена файлов для отображения в диалоговом окне.
Например, оператор
OpenDialog1.Filter := '*.pas, *.txt| *.PAS, *.TXT'| все файлы|*.*'; позволит выбирать отображение либо только файлов типа .pas и .txt, либо всех файлов текущего каталога.
Options: TOpenOptions
- Описывает вид окна и возможности выбора файлов в диалоге. Задаётся конструктором множества с базовым перечисляемым типом TopenOption [1].
Метод
function Execute: Boolean; override;
Отображает окно диалога выбора файла. При закрытии окна вернёт true, если файл выбран (выделен и нажата кнопка Открыть), иначе – false (нажата кнопка Отмена).
TSaveDialog (вкладка Dialogs)
Назначение - диалоговое окно выбора имени файла для сохранения.
Наследует от TOpenDialog свойства и методы.
Пример записи
1.Выбор имени файла S и запись в редактор Memo
If Form1.OpenDialog1.Execute //диалог активен
then begin
S:= OpenDialog1.FileName;
Memo1.lines.LoadFromFile(S); // загрузка файла в редактор
end
else MessageDlg('Файл не найден');
2. Выбор имени файла S и запись из редактора Memo в файл
If Form1.SaveDialog1.Execute //диалог активен
then begin
S:= SaveDialog1.FileName;
Memo1.lines.SaveToFile(S); // сохранить текст редактора в файле
end
TMemo (вкладка Standard)
Назначение - компонент для обработки многострочных текстов.
Основные свойства
Name - имя компонента. Используется для доступа к свойствам компонента
Text - текст поля Memo представляется одной строкой с разделителями возврат каретки и перевод строки.
Lines - массив (список) строк текста поля Memo.
String[Index:Integer] - осуществляет доступ к строке. Hумерация строки начинается с нуля.
Например, Memo1.Lines[0]- текст первой строки.
Width - ширина поля.
Height - высота поля.
Modified - индикатор изменения текста. Тrue – текст изменен, False – нет.
ScrollBars - задаёт отображение полосы прокрутки: ssHorisontal – только горизонтальная, ssVertical – только вертикальная, ssBoth - горизонтальная и вертикальная, ssNone - нет полос прокрутки.
Методы
procedure Clear; virtual; - удаление текста компонента
procedure SelectAll – выделение всего текста компонента
Примеры использования компонента Memo
Memo1.Clear; - очистка окна редактора (очистка содержимого Memo)
Характеристики
Тип файла документ
Документы такого типа открываются такими программами, как Microsoft Office Word на компьютерах Windows, Apple Pages на компьютерах Mac, Open Office - бесплатная альтернатива на различных платформах, в том числе Linux. Наиболее простым и современным решением будут Google документы, так как открываются онлайн без скачивания прямо в браузере на любой платформе. Существуют российские качественные аналоги, например от Яндекса.
Будьте внимательны на мобильных устройствах, так как там используются упрощённый функционал даже в официальном приложении от Microsoft, поэтому для просмотра скачивайте PDF-версию. А если нужно редактировать файл, то используйте оригинальный файл.
Файлы такого типа обычно разбиты на страницы, а текст может быть форматированным (жирный, курсив, выбор шрифта, таблицы и т.п.), а также в него можно добавлять изображения. Формат идеально подходит для рефератов, докладов и РПЗ курсовых проектов, которые необходимо распечатать. Кстати перед печатью также сохраняйте файл в PDF, так как принтер может начудить со шрифтами.