{ **** UBPFD *********** by kladovka.net.ru ****
>> Перетасовка строк в списке
Процедура тасует строки в списке.
List - Список строк
MoveCount - необязательный параметр, задающий количество перестановок,
если этот параметр опущен, либо меньше или равен нулю, его значение
принимается равным C*C-C, где C - количество строк в списке.
Зависимости: SysUtils, Classes
Автор: Dimka Maslov, mainbox endimus.ru, ICQ:148442121, Санкт-Петербург
Copyright: Dimka Maslov
Code: |
procedure ShuffleStrings(List: TStrings; MoveCount: Integer = 0); var i, N, C: Integer; Index1, Index2: Integer; Str: string; Obj: TObject; begin List.BeginUpdate; try C:=List.Count; N:=MoveCount; if N <= 0 then N:=C*C-C; for i:=0 to N do begin Index1:=Random(C); Index2:=Random(C); Str:=List.Strings[Index1]; Obj:=List.Objects[Index1]; List.Strings[Index1]:=List.Strings[Index2]; List.Objects[Index1]:=List.Objects[Index2]; List.Strings[Index2]:=Str; List.Objects[Index2]:=Obj; end; finally List.EndUpdate; end; end; |
Пример использования:
Code: |
ShuffleStrings(Memo1.Lines) |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!