Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];




Вниз

Помогите! Не могу разобраться, почему в этой проц. печатается менее 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 зависит и от времени и при такой ситуации будет генерировать одинаковые значения при разных запусках процедуры




Форум: "Основная";
Поиск по всему сайту: delphimaster.net;
Текущий архив: 2002.01.31;
Скачать: [xml.tar.bz2];




Наверх





Память: 0.72 MB
Время: 0.024 c
3-99840           777                   2001-12-26 03:03  2002.01.31  
TDBGrid и Ширина столбца. Все что мне посоветовали это здорово но как реально это сделать...


7-100079          Serega_2              2001-10-22 13:31  2002.01.31  
Работа с Word`ом


7-100074          Win                   2001-10-19 16:19  2002.01.31  
Как прогу скопировать7


3-99925           DarT                  2001-12-28 12:07  2002.01.31  
Два вопроса


7-100084          Sergy                 2001-10-18 17:32  2002.01.31  
Выкллючить комп