Упражнение 2. Создайте приложение, открывающее текстовый файл для чтения и считывающее из него текст в окно Memo. Перед открытием файла следует проверить его наличие; в случае отсутствия файла должно выводиться соответствующее сообщение. Создайте форму и задайте для ее свойства Caption значение «Чтение текста из файла в окно Memo». На форме Form1 разместите компоненты Memo1, Label1 и Button1, задайте значения для свойств Label1.Caption – «Текст из файла», Button1.Caption – «Прочитать текст из файла». Для удаления текста Memo1 из окна компонента Memo1 выберите в окне Инспектора объектов объект Memo1, затем на странице Свойства произведите двойной щелчок на поле значения Strings свойства Lines для формирования и редактирования текста. После этого в окне String List Editor удалите текст Memo1 и щелкните мышью на кнопке ОК. Для обеспечения возможности просмотра в окне Memol длинных текстов с использованием вертикальной полосы прокрутки в окне Инспектора объектов выберите объект Memol и на странице Свойства установите для свойства ScroLLBars значение ssVertical. Выровняйте компоненты и зафиксируйте их положение на форме. Выбрав в окне Инспектора объектов объект Buttonl, на странице Событий произведите двойной щелчок на пустом поле списка в событии OnClick. После этого в окне Редактора кода будет сгенерирована заготовка процедуры обработчика события. Чтобы эта процедура выполняла открытие текстового файла и выводила текст в окно Memo1, отредактируйте текст процедуры следующим образом: procedure TForm1.Button1Click(Sender: TObject);
var
F:TextFile; {описание файловой переменной}
Ch : Char; {описание переменной, в которую будет считываться символ из файла}
begin
AssignFile(F,’textl.txt’); {связь файловой переменной с файлом на диске}
{$1-} {директива компилятора: отключить проверку ошибок ввода вывода}
Reset(F); {открыть файл для чтения}
{$1+}
if IOResult = 0 then begin {если операция открыть файл выполнена успешно}
while not Eof(f) do {пока не конец файла}
begin
Read(F,Ch); {прочитать из файла символ}
Memo1.Text:=Memo1.Text+Ch; {вывести символ в поле Memol}
end;
CloseFile(F); {закрыть файл}
end
else {IOResuR<>0 — операция открыть файл не выполнена}
ShowMessage(‘Нет такого файла’);
End;
Как видно из текста процедуры, после связывания файловой переменной с именем файла при помощи специальной директивы компилятора отключается контроль ошибок ввода-вывода для того, чтобы проверить функцией IOResult успешность операции. В случае успешности операции открытия файла на чтение производится чтение файла по одному символу и вывод его в окно Memo1. Условием прекращения чтения из файла является достижение конца файла (Eof(f)=True). После этого файл закрывается. Если открыть файл не удается, то IOResult возвращает значение, отличное от нуля, при этом в отдельном окне выводится соответствующее сообщение. Сохраните файл модуля под именем main1, а файл проекта – под именем TextMemoFile1 в папке Обработка текстовых файлов. Откомпилируйте и запустите приложение. Щелкнув на кнопке Прочитать текст из файла, убедитесь, что текст из файла считывается в окно Memo1. Закройте окно приложения.
|