□ что такое список;
как устроено основное свойство всех списков, объединяющее его элементы;
□ добавление, изменение и удаление элементов списка;
□ поиск заданного элемента;
□ механизм выделения памяти под элементы списка;
□ список строк;
• список указателей;
□ чем отличается коллекция от списка;
• коллекции;

• использование потоков.

Список строк

Строковый тип данных широко используется программистами. Во-первых, многие данные действительно необходимо представлять при помощи этого типа. Во-вторых, множество функций преобразования типов позволяют представлять числовые типы в виде строк, избегая тем самым проблем с несовместимостью типов.

По этой причине в первую очередь мы займемся изучением списка строк, который инкапсулирован в классах Тбгп^б и тэг-ггидЫзг.. Первый класс является абстрактным и служит платформой для создания реально работающих потомков. Второй класс реализует вполне работоспособный список строк. Рассмотрим эти классы подробнее.

Класс TStrings

Класс TStrings является базовым классом, который обеспечивает потомков основными свойствами и методами, позволяющими создавать работоспособные списки строк. Его прямым предком является класс TPersistent.

Класс TStrings реализует все вспомогательные свойства и методы, которые обеспечивают управление списком. При этом методы, непосредственно добавляющие и удаляющие элементы списка, не реализованы и объявлены как абстрактные.

Внимание!

Попытка прямого использования в приложении экземпляра класса ТЭ1ппд5 вызовет ошибку применения абстрактного класса на этапе выполнения программы, а именно при попытке заполнить список значениями. Простая замена типа объектной переменной списка на TStringList делает приложение полностью работоспособным без какого-либо дополнительного изменения исходного кода.

Классы-наследники должны перекрывать методы добавления и удаления элементов списка. Реализованный в Delphi класс TStringList практически полностью повторяет функциональность предка, добавляя лишь несколько новых свойств и методов. Поэтому мы не станем останавливаться подробнее на классе Tstrings, а перейдем сразу к его работоспособному потомку TStringList.

Класс TStringList

Класс TStringList обеспечивает реальное использование списков строк в приложении. По существу, класс представляет собой оболочку вокруг динамического массива значений списка, представленного свойством strings. Объявление свойства (унаследованное от Tstrings) выглядит так:

property Strings [Index: Integer] : string read Get write Put;
default;

Для работы со свойством используются внутренние методы Get и Put, в которых применяется внутренняя переменная FList:

type

PStringltem = -TStringltem;
TStringltem = record FString: string;
TObj ect: TObj ect ;
end;
PStringltemList = ^TStringltemList;
TStringltemList = array[0..MaxListSize] of TStringltem;
FList: PStringltemList;

Из ее объявления видно, что список строк представляет собой динамический массив записей TStringltem. Эта запись позволяет объединить саму строку и связанный с ней объект.


⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Декабрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс