Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Лабораторная работа _6

.doc
Скачиваний:
24
Добавлен:
11.04.2015
Размер:
32.77 Кб
Скачать

Лабораторная работа №6

Разработка быстрого текстового редактора

(с использованием процедур блочного ввода/вывода и печати).

  1. Разместите на форме следующие компоненты:

  • TToolBar (компонент VCL с закладки Win32. Он объединяет расположенные на нем кнопки и другие элементы управления и централизованно управляет ими);

  • на TToolBar выведите 4 кнопки TSpeedButton для диалогов открытия файла, выбора шрифтов, печати и выхода из приложения;

  • компоненты диалогов открытия файла, выбора шрифтов и печати;

  • два компонента TMemo;

  • Напишите код для кнопки TSpeedButton1:

    • свяжите файловую переменную с выбранным файлом;

    • откройте файл для чтения с установкой размера считываемого блока в 1 байт;

    • в цикле While, который выполняется, пока не будет достигнут конец файла

    1. получите положение файлового указателя:

    Pointer:=FilePos(F); // var Pointer: Longint;

    1. считайте из файла блок размером 1К в буфер:

    BlockRead (F, Buf, SizeOf(Buf), BytesRead); // Byf – массив типа Byte р-ром 1К

    Здесь используется расширенный синтаксис процедуры BlockRead, при котором в программу возвращается количество реально считанных блоков (переменная BytesRead). Вместо SizeOf(Buf) можно указать 1024 (т.е. 1К).

    1. используя дополнительную переменную типа String, выведите в TMemo1 считанный блок;

    2. выполните редактирование считанного блока, например, замените символ пробела на запятую:

    for i:=1 to BytesRead do if Buf[i]=32 then Buf[i]:=44;

    1. выведите отредактированный текст в TMemo2;

    2. передвиньте указатель в файле на начало обрабатываемого блока, так как при выполнении процедуры BlockRead он переместился на конец блока;

    3. запишите отредактированный блок из буфера на диск:

    BlockWrite (F, Buf, BytesRead);

    Указатель при этом передвинется на конец блока.

    1. Напишите код для диалога выбора шрифтов, позволяющий устанавливать шрифты в обоих TMemo.

    2. Организуйте печать текста из окна TMemo2 (не более двух страниц !), предусмотрите возможность печати нескольких копий.