MyChat Scripts: свойство TStringList.Duplicates, что делать с копиями строк
"Для разработчиков", "Серверные скрипты", "Описание функций", "Строки", "TStringList", "Свойства", "Duplicates".
При вставке новых строк в список можно настроить, как будет себя вести созданный класс TStringList: игнорировать копии, добавлять их или выдавать ошибку.
Свойство работает, только если список строк — сортированный.
Синтаксис
property TStringList.Duplicates: TDuplicates;
Параметры и возвращаемые значения
dupIgnore |
пропускать копии и не добавлять их в список; |
dupAccept |
добавлять любые строки; |
dupError |
пропускать копии и не добавлять их в список, генерируя ошибку добавления элемента (используйте try...except). |
Пример
var
SL: TStringList;
procedure FillList;
var
i: integer;
begin
for i := 1 to 20 do
SL.Append(IntToStr(random(5)));
end;
begin
SL := TStringList.Create;
SL.Sorted := true;
SL.Duplicates := dupAccept;
FillList;
mLogScript(SL.CommaText, 'Enable duplicates');
SL.Clear;
SL.Duplicates := dupIgnore;
FillList;
mLogScript(SL.CommaText, 'Disable duplicates');
SL.Free;
end.
Результат работы скрипта
[16:48:28] (Log "DuplicatesProperty"): [Enable duplicates] 0,0,0,0,0,1,1,1,1,2,2,2,3,3,3,3,3,4,4,4
[16:48:28] (Log "DuplicatesProperty"): [Disable duplicates] 0,1,2,3,4
[16:48:28] (Run "DuplicatesProperty"): Время выполнения скрипта: 5 мс
[16:48:28] (Run "DuplicatesProperty"): Скрипт выполнен успешно.