Создание коллекций
Для создания коллекции следует прежде всего определить тип тех данных, которые будут в ней храниться. Например, Вам необходимо создать электронный каталог Вашей личной библиотеки. В этом случае для каждой указанной в каталоге книги можно выделить пять полей данных: автор, название, издательство, год издания и количество страниц. Создадим новый объект TBook следующего вида:
Uses Objects;
type
PBook = TBook;
TBook = object (TObject)
Autor: PSbring; {Автор}
Title: PString; {Название}
PubHouse: PString; {Издательство}
Year: Word; {Год издания}
Pages: Word; {Количество страниц}
Constructor Init(A,T,PH: String; Y,P: Word);
Destructor Done; Virtual;
end ;
Мы включили' в объект поля и два основных метода работы с ними: конструктор Init используется для размещения в динамической памяти очередной записи каталога, деструктор Done удаляет записи из кучи. Заметим, что в объекте задаются не сами текстовые строки, а указатели на них (тип PString в Turbo Vision описан как указатель на тип String). Такое размещение данных как правило дает значительную экономию памяти. Например:
Constructor TBook.Init(А,Т,РН: String; Y,P: Word);
begin
Autor := NewStr(A);
Title := NewStr(T);
PubHouse := NewStr(PH);
Year := Y;
Pages := P
end; {TBook.Init}
Используемые в конструкторе функции NewStr размещают в динамической памяти текстовую строку, выделяя под нее минимально необходимую память, что значительно выгоднее по сравнению с типичным описанием текстовых полей вида
type
TBook = object (TObject)
Autor, Title, PubHouse: String;
.....
end;
Для освобождения динамической памяти в деструкторе Done используется процедура DisposeStr:
Destructor TBook.Done;
begin
DisposeStr(Autor);
DisposeStr(Title);
DisposeStr (PubHouse)
end; {TBook.Init}
После того как тем или иным способом определены типы данных, создание коллекции не вызывает проблем. Например:
var
BookList: PCollection;
begin
BookList := New(PCollection, Init(50,10));
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий