Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2008, 20:52   #1
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию Random для символов

Вот заинтересовал вопрос. Например надо создать строку из 15 СИМВОЛОВ. Вот код:
Код:
var 
Symbol : Pchar;
for I := 1 to 15 do
 begin
  Symbol := Random(255);
  label_Symbol.Caption := Symbol;
 end;
Почему то не работает. Помогите пож.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 23.08.2008, 21:08   #2
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
var  Symbol : Char;
     i:integer;
begin
randomize;
for i:=1 to 15 do
  begin
    Symbol := Chr(Random(255));
    Label1.Caption :=Label1.Caption+Symbol;
  end;
end;
puporev вне форума Ответить с цитированием
Старый 23.08.2008, 21:18   #3
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Будет работать? Заранее спасибо, просто я уже так пробовал, у меня не получилось, но там чуть другой алгоритм был, ладно я попробуй.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 23.08.2008, 21:29   #4
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Ну для ифнормации 0 - конец строки, и если выпадет 0 первым то все, строка пустая. И честно говоря это немного тупо брать диапазон от 0 до 255. Вы лучше гляньте на таблицу ASCII и выберите для праверки нужные символы ( диапозон байтов ).
BOBAH13 вне форума Ответить с цитированием
Старый 23.08.2008, 21:32   #5
GN_
Пользователь
 
Аватар для GN_
 
Регистрация: 25.11.2006
Сообщений: 86
По умолчанию

Денис, в 255 входят не только буквы, но и спецсимволы (табуляция, энтер), поэтому надо определённый диапазон генерить.

---
BOBAH13, опередил
Мой ник - GN

Последний раз редактировалось GN_; 23.08.2008 в 21:34.
GN_ вне форума Ответить с цитированием
Старый 23.08.2008, 21:46   #6
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Нет не работает, почему - то выдаёт только цифры. А если например:
const
AB = 'ABCDEF...';
Как сделать чтобы на угад взялся символ из этой строки.
Заранее спасибо.
Манжосов Денис :) вне форума Ответить с цитированием
Старый 23.08.2008, 22:29   #7
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
Function Func(length:integer):string;
var ch:string;      
a,x:byte;      
begin      
 randomize;      
 x:=1;        
 repeat       
      a:=random(1)+1;      
      if a=1 then ch:=chr(65+random(26));         
      if a=2 then ch:=chr(97+random(26));      
   end;      
 result:=result+ch;      
 inc(x);      
until x>length;     
end;
Вот код который по заданной длине генерует строку из разных символов
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 23.08.2008, 22:33   #8
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Код:
Function Func(length:string,Const maska:string):string;
var ch:string;         
a,x:byte;         
begin         
 randomize;         
 x:=1;           
 repeat          
      a:=random(length(maska))+1;         
      ch:=maska[a];            
   end;         
 result:=result+ch;         
 inc(x);         
until x>length;        
end;   
end;
Вот функция которая генерует строку длины Length и выбирает только символы которые есть в Mask.
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Старый 23.08.2008, 22:55   #9
Манжосов Денис :)
Участник клуба
 
Регистрация: 29.01.2008
Сообщений: 1,039
По умолчанию

Я не вижу в этих кодах того что будет выводиться символ.
Тем более я просто попросил как можно взять символ на Random из Const Alphabet = 'ABCDEF...XYZ'?
Манжосов Денис :) вне форума Ответить с цитированием
Старый 23.08.2008, 23:03   #10
Ozerich
Студент 1 курса
Форумчанин Подтвердите свой е-майл
 
Аватар для Ozerich
 
Регистрация: 27.06.2008
Сообщений: 959
По умолчанию

Цитата:
Я не вижу в этих кодах того что будет выводиться символ.
я написал функцию.ну а дальше ты сам.
например edit1.text:=Func(4);//для первого примера
edit1.text:=Func(4,'abcf');//для второго примера
Цитата:
Тем более я просто попросил как можно взять символ на Random из Const Alphabet = 'ABCDEF...XYZ'?
[/QUOTE]
var ch:char;
begin
randomize;
Ch:=alphabet[random(length(alphabet))];
end;
C++(STL, QT, WinInet) / DHTML(CSS) / JavaScript / PHP Developer
Ozerich вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Random Febreze Общие вопросы Delphi 2 28.04.2008 14:17
random Forrest Gamp Общие вопросы C/C++ 4 11.02.2008 09:46
Random -10 +10 Veiron Общие вопросы Delphi 1 23.01.2008 17:23
Random Constellation БД в Delphi 2 10.01.2008 21:37
random Sanek_ntsk Общие вопросы Delphi 8 17.12.2007 21:54