Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебники 60105.doc
Скачиваний:
10
Добавлен:
01.05.2022
Размер:
827.9 Кб
Скачать

Компоненты для работы с текстом

  1. Общие указания по выполнению лабораторной работы

    1. Цель работы

Изучение методов работы с компонентами, предназначенными для обработки многострочных текстов; получение навыков использования основных свойств, методов и событий этих компонентов.

    1. Используемое оборудование и программное обеспечение

Для выполнения лабораторной работы требуется ПЭВМ типа IBM PC с ОС Windows 2000 и выше, среда разработки Borland Delphi 7 или Borland C++ Builder.

  1. Домашнее задание и методические указания по его выполнению

    1. Многострочные редакторы текста

      1. Компонент Memo

Для работы с многострочным текстом Delphi и C++ Builder предоставляют несколько компонентов. Наиболее часто используемыми являются Memo и RichEdit. Сначала рассмотрим работу с компонентом Memo .

Для доступа ко всему содержимому многострочного редактора используется свойство Text строкового типа. В этом случае все содержимое компонента Memo представляется одной строкой, а конец каждой строки, вставляемый при нажатии клавиши <Enter>, записывается двумя кодами #13#10.

Для работы с отдельными строками используется свойство Lines типа TStrings. Данный класс является базовым для выполнения операций со строковыми данными и предоставляет соответствующие свойства и методы.

К каждой строке многострочного редактора можно получить доступ по ее номеру в массиве Lines. Отсчет элементов списка начинается с нуля. Для обращения к первому элементу нужно указать Lines[0], ко второму - Lines[1] и т.д. При операциях с отдельными строкам программист должен контролировать номера строк в редакторе и не допускать обращения к несуществующему элементу.

При конструировании приложения изменение списка строк выполняется с помощью строкового редактора String List Editor (рис. 8). Его вызов выполняется через Инспектор объектов нажатием кнопки с многоточием в поле свойства Lines.

  1. Строковый редактор

Свойство Count типа integer задает число элементов в списке. Поскольку первый элемент списка имеет нулевой номер, то номер последнего элемента равен Count – 1.

Например, присвоим элементам редактора Memo новые значения:

// - - - - Object Pascal - - - -

for i := 0 to Memo1.Lines.Count do

Memo1.Lines[i] := 'Строка № ' + IntToStr(i);

// - - - - - - - C++ - - - - - - -

for (int i = 0; i < Memo1->Lines->Count; i++)

Memo1->Lines->Strings[i] = "Строка №" + IntToStr(i);

Результат работы программы показан на рис. 9.

  1. Пример работы с компонентом Memo

Методы Add и Insert служат для добавления строк в многострочный редактор. Функция Add(s: string): integer добавляет строку s в конец текста, а в качестве результата возвращает положение нового элемента в списке. Процедура Insert(index: integer; s: string) вставляет строку s на позицию с номером index. При этом строки, находившиеся до операции вставки в указанной позиции и ниже, смещаются вниз.

Для удаления элементов из Memo используются методы Delete и Clear. Метод Delete(index: integer) удаляет элемент с номером index.

Метод Clear очищает многострочный редактор, удаляя все его элементы.

Примеры использования методов Memo:

// - - - - Object Pascal - - - -

Memo1.Lines.Add('Новая строка');

Memo1.Lines.Delete(4);

Memo1.Clear;

// - - - - - - - C++ - - - - - - -

Memo1->Lines->Add("Новая строка");

Memo1->Lines->Delete(4);

Memo1->Clear();

Процедура Move(cur_index, new_index: integer) перемещает элемент с позиции с номером cur_index в позицию с номером new_index.

Поиск элемента в редакторе можно выполнить с помощью метода IndexOf. Функция IndexOf(s: string): integer определяет, содержится ли строка s в редакторе. В случае успешного поиска функция возвращает номер позиции найденной строки, а в случае, если строковый элемент не найден, то возвращается значение –1.

Класс TStrings имеет методы SaveToFile и LoadFromFile, позволяющие непосредственно работать с текстовыми файлами. Эти методы предоставляют возможность сохранения строк из редактора в текстовом файле на диске и последующего чтения строк из этого файла.

Процедура SaveToFile(file_name) сохраняет строковые элементы в файл file_name. В последующем сохраненные строки можно извлечь из файла, используя метод LoadFromFile.

Процедура LoadFromFile(file_name) заполняет Memo содержимым указанного текстового файла, при этом предыдущее содержимое стирается.

Например, сохраним текст из Memo1 в файл file1 и загрузим в редактор файл file2:

// - - - - Object Pascal - - - -

Memo1.Lines.SaveToFile('file1.txt');

Memo1.Lines.LoadFromFile('file2.txt');

// - - - - - - - C++ - - - - - - -

Memo1->Lines->SaveToFile("file1");

Memo1->Lines->LoadFromFile("file2.txt");

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]