Лабораторная работа _6
.doc
Лабораторная работа №6
Разработка быстрого текстового редактора
(с использованием процедур блочного ввода/вывода и печати).
-
Разместите на форме следующие компоненты:
-
TToolBar (компонент VCL с закладки Win32. Он объединяет расположенные на нем кнопки и другие элементы управления и централизованно управляет ими);
-
на TToolBar выведите 4 кнопки TSpeedButton для диалогов открытия файла, выбора шрифтов, печати и выхода из приложения;
-
компоненты диалогов открытия файла, выбора шрифтов и печати;
-
два компонента TMemo;
Напишите код для кнопки TSpeedButton1:
-
свяжите файловую переменную с выбранным файлом;
-
откройте файл для чтения с установкой размера считываемого блока в 1 байт;
-
в цикле While, который выполняется, пока не будет достигнут конец файла
-
получите положение файлового указателя:
Pointer:=FilePos(F); // var Pointer: Longint;
-
считайте из файла блок размером 1К в буфер:
BlockRead (F, Buf, SizeOf(Buf), BytesRead); // Byf – массив типа Byte р-ром 1К
Здесь используется расширенный синтаксис процедуры BlockRead, при котором в программу возвращается количество реально считанных блоков (переменная BytesRead). Вместо SizeOf(Buf) можно указать 1024 (т.е. 1К).
-
используя дополнительную переменную типа String, выведите в TMemo1 считанный блок;
-
выполните редактирование считанного блока, например, замените символ пробела на запятую:
for i:=1 to BytesRead do if Buf[i]=32 then Buf[i]:=44;
-
выведите отредактированный текст в TMemo2;
-
передвиньте указатель в файле на начало обрабатываемого блока, так как при выполнении процедуры BlockRead он переместился на конец блока;
-
запишите отредактированный блок из буфера на диск:
BlockWrite (F, Buf, BytesRead);
Указатель при этом передвинется на конец блока.
-
Напишите код для диалога выбора шрифтов, позволяющий устанавливать шрифты в обоих TMemo.
-
Организуйте печать текста из окна TMemo2 (не более двух страниц !), предусмотрите возможность печати нескольких копий.