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

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

Генератор случайных букв :)


BiggieSmalls ©   (2006-01-08 12:33:00) 

Есть-ли в Делфи, стандартный генератор случайных символов, наподобии функции Random, но для букв. Или только ручками писать надо?


VirEx   (2006-01-08 22:07:00) [1]


>  [11] VirEx ©   (08.01.06 22:03)

ну енто конечно можно и form1.Caption:=char(ord('0')-random(9)); //0 - 9и по аналогии с остальными


VirEx   (2006-01-08 22:03:00) [2]

procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
form1.Caption:=char(57-random(9)); //0 - 9
form1.Caption:=char(90-random(25));//A - Z
form1.Caption:=char(122-random(25));//a - z
form1.Caption:=char(223-random(31));//А - Я
form1.Caption:=char(224-random(31));//в - я
end;


VirEx   (2006-01-08 22:03:00) [3]

procedure TForm1.Button1Click(Sender: TObject);
begin
randomize;
form1.Caption:=char(57-random(9)); //0 - 9
form1.Caption:=char(90-random(25));//A - Z
form1.Caption:=char(122-random(25));//a - z
form1.Caption:=char(223-random(31));//А - Я
form1.Caption:=char(224-random(31));//а - я
end;


TUser   (2006-01-08 21:19:00) [4]

[2]
random(max-min)+min


Piter   (2006-01-08 14:46:00) [5]

jack128 ©   (08.01.06 13:10) [4]

Сори, я скобочку не заметил, спутал :)


Piter   (2006-01-08 14:44:00) [6]

Piter ©   (08.01.06 14:43) [6]
но по крайней мере для русских 'А'..'Я' и 'а'..'Я'


но по крайней мере для русских 'А'..'Я' и 'а'..' я'


Piter   (2006-01-08 14:43:00) [7]

jack128 ©   (08.01.06 13:10) [4]
А может просто Result := Chr(Random(Ord('Z') - Ord('a')) + Ord('a')) ??


агы, Ord('a') сокращается... и что у нас остается? :))

Ну идея понятно, только надо учесть, что символы a..z идут не сразу после A..Z (точно не уверен, но по крайней мере для русских 'А'..'Я' и 'а'..'Я' это точно так).

То есть, сначала можно рандомно выбрать - какую буквку генерировать (заглавную или прописную), а потому же из нужного диапазона генерировать...


NaziGhost   (2006-01-08 14:27:00) [8]

=) и такое тоже


jack128   (2006-01-08 13:10:00) [9]

NaziGhost   (08.01.06 13:01) [3]
niz   := ORD('A');
verh := ORD('z'); // для англицких есесно

rnd:=random(verh);
if rnd > niz then
 res:= Chr(rnd);


А может просто Result := Chr(Random(Ord('Z') - Ord('a')) + Ord('a')) ??


NaziGhost   (2006-01-08 13:01:00) [10]

можно попробовать вот так

var
niz,verh,rnd: byte;
res: char;
begin

randomize;

niz   := ORD('A');
verh := ORD('z'); // для англицких есесно

rnd:=random(verh);
if rnd > niz then
  res:= Chr(rnd);

код не проверл, так написал, поправьте если что не так и не судите строго =)


Anatoly Podgoretsky   (2006-01-08 12:49:00) [11]

Что за символы и не подойдет ли стандартные генератор.


Fay   (2006-01-08 12:47:00) [12]

2 BiggieSmalls   (08.01.06 12:33)
ручками - только массив интересующих символов.


Наверх

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