Турбо Паскаль 6.0




Коллекции строк.


Многим программам необходимо хранить отсортированные строки. Для этого Turbo Vision предоставляет специальную коллекцию TStringCollection. Заметим, что элементы TStringCollection - не объекты, это указатели на строки Turbo Pascal. Поскольку коллекция строк наследуется от TSortedCollection, дублированные строки не сохраняются. Использовать коллекции строк просто. Просто объявите переменную указателя на коллекцию строк. Распределение коллекции, задание начального размера и приращение при расширении коллекции определены:

{ TVGUIDE19.PAS } var WordList: PCollection; WordRead: String; . begin WordList := New(PStringCollection, Init(10, 5)); .

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

repeat . if WordRead <> '' then WordList^.Insert(NewStr(WordRead)); . until WordRead = ''; . Dispose(WordList, Done);

Заметим, что функция NewStr используется для создания копии слова, которое было прочитано, и адрес копии строки передается в коллекцию. Когда используется коллекция, Вы всегда передаете ей управление над собираемыми данными. Она будет тщательно освобождать данные, когда Вы закончите работу. Это будет соответствовать вызову Dispose; он освобождает каждый элемент коллекции, а затем освобождает саму коллекцию WordList.




Содержание  Назад  Вперед