Вниз
Скачать: CL | DM;

Помогите! Не могу разобраться, почему в этой проц. печатается менее 6 букв   Найти похожие ветки 

 
Yuraz ©   (2002-01-13 19:03) [0]

Код ниже

procedure Rand;
const StrTable: string ="abcdef0123456789";
var
s,t: string;
i,y,j,x: integer;
begin
Randomize;
for x:=0 to 100 do // это сколько всего генераций
begin
s:="";
y := Length(StrTable)+1;
for i:=0 to 5 do // устанавливаем кол-во букв
begin
j:=Random(y);
t:=StrTable[j];
s:=t+s;
end;
Form1.Memo7.Lines.Add(s); // выведем весь список в memo
end;
end;


 
Yuraz ©   (2002-01-14 09:56) [1]

333


 
WAM   (2002-01-14 11:28) [2]

Потому что 0 <= Random(n) <= n. А в стринге по нулевому индексу лежит его длина (здесь 16), а 16 - непечатный символ. Надо
j := 1 + Random(y - 1);


 
Nemesis ©   (2002-01-14 11:34) [3]

Randomize отсюда выбрось - лучше его поставить в OnCreate формы (главной). Random зависит и от времени и при такой ситуации будет генерировать одинаковые значения при разных запусках процедуры



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.008 c
4-100108
Filat
2001-12-03 16:42
2002.01.31
Не перегружается комп. Мешает сообщение, что к компу подкл. несколько юзеров.


1-100005
AndreyP
2002-01-15 10:32
2002.01.31
Количество принтеров в системе


14-100055
VEG
2001-12-10 22:01
2002.01.31
Нужен компонент типа LABEL, только с большей скоростью перерисовки!!!


1-99962
olden
2002-01-14 11:22
2002.01.31
киньте ссылку на хорошую библиотеку TDateTime routines плиз :)


1-99928
MARcoDEN
2002-01-09 20:53
2002.01.31
Delphi 6




   Наверх