MyChat Scripts: свойство TStringList.Duplicates, что делать с копиями строк

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"): Скрипт выполнен успешно.
 

Ещё посмотреть

IntToStr

mLogScript

Random

TStringList.Append

TStringList.Create

TStringList.CommaText

TStringList.Free