![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Генератор случайных букв :)
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)
ручками - только массив интересующих символов.