Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Перестановка строк [D7, WinXP]


DolQ ©   (2005-02-08 21:24:00) 

Подскажите как решить такую задачу:
Есть Memo1 в нем идут n строк (небольшое, приблизительно до 10) между которыми пустые строки. Как мне лучше всего поменять их местами в случайном порядке?


DolQ   (2005-02-09 20:59:00) [1]

Спасибо за помощь!


Jeer   (2005-02-09 19:12:00) [2]

Юрий   (09.02.05 19:01) [2]
>For I:= 1 to 10 do

После этого "случайного" порядка не будет, а будет приближение к нему.
Для улучшения случайности рекомендую увеличить интервал перемешивания на пару порядков::)


begin...end   (2005-02-09 19:05:00) [3]

> Юрий   (09.02.05 19:01) [2]

> TmpSt:=Memo1.Lines.Strings[TmpIndex];    
> Memo1.Lines.Strings[TmpIndex]:=Memo1.Lines.Strings[I];
> Memo1.Lines.Strings[I]:=TmpSt;

Memo1.Lines.Exchange(TmpIndex, I)


Юрий   (2005-02-09 19:01:00) [4]

...
 Randomize;
 Begin
   For I:= 1 to 10 do
    Begin
      TmpIndex:= Random(10)+1;
      TmpSt:=Memo1.Lines.Strings[TmpIndex];
      Memo1.Lines.Strings[TmpIndex]:=Memo1.Lines.Strings[I];
      Memo1.Lines.Strings[I]:=TmpSt;
    End;
 End;
...


Johnmen   (2005-02-08 23:08:00) [5]

Randomize, Random, TStrings, Lines[i] и т.д. и т.п.


Наверх

Титульная страница Поиск, карта сайта Написать письмо