как программно создать список типа asdewr ghwbkr profkas mnbdgw и т.д вобщем чтобы каждое слово состояло из 7 букв рандомных я поискал по книжкам, нарыл такое Code: var s : array [1..100] of string; i, x:integer; login : string; procedure TForm1.Button1Click(Sender : TObject); begin for i:=1 to SpinEdit1.Value do //количество строк begin x:=random(26)+65; s[i]:=chr(x); login:=login+s[i]; Memo1.Lines.Add(login); end; код смахует на бред сивой кобылы, поэтому прошу вашей помощи
я в делфи не силён, но код выглядит вполне нормально. лишнее только login. и не хватает самого списка,что бы в него сохранить все строки.
Вот накидал по-быстрому, развлекайся Code: procedure TForm1.Button1Click(Sender: TObject); var login: string; I, J: Integer; begin for I:=1 to SpinEdit1.Value{Число строк} do begin login:=''; for J:=1 to SpinEdit2.Value{Символов на строку} do login:=login+Char(Random(26)+65); Memo1.Lines.Add(login); end; end;
Там коментарий не количество строк, а количество букв в SpinEdit1, и еще Memo1.Lines.Add уже за цикл нужно вынести (после каждой итерации будет добавлятся слово на 1букву больше предыдущего), иначе вывод будет например таким Code: q qw qwe qwer qwert
используй функцию: Code: function RandomString(ln:integer):string; const dict='abcdefghijklmnopqrstuvwxyz'; var i:integer; begin result:=emptystr; randomize; for i:=1 to ln do result:=result+dict[random(length(dict)-1)+1]; end; Пример использования: Code: var s:string; begin s:=RandomString(7); ShowMessage(s); end;
что-то типа такого мол: procedure randommss(olala:integer); var a,b,c,d,e,f:string;x,i:integer; begin for i:=1 to olala do begin x:=random(26)+65; a:=a+chr(x); end; result:=a; end; ----\\--- var list:tstringlist;i:integer; begin list:=tstringlist.create; for i:=1 to .. do list.add(randommss(7));
всем спасибо за проявленное внимание, вы очень помогли но один вопрос. зачем result если это процедура??
Переменная Result используется, чтобы хранить значение результата, возвращенное функцией. Когда функция начинается, Delphi сам автоматически создает эту переменную. Она имеет тот же самый тип, как и возвращаемый тип функции. Результат может использоваться в функции повсюду, как будто она была явно объявлена. Пример: Code: begin // Получение квадратов некоторых чисел ShowMessageFmt('Квадрат %d = %d',[2, SquareIt(2)]); ShowMessageFmt('Квадрат %d = %d',[8, SquareIt(8)]); end; // Простая функция, которая возвращает квадрат параметра function TForm1.SquareIt(value: Integer): Integer; begin // Возвращение значения в переменной Result Result := value * value; end;
Молодец, копипастить научился. Теперь научись понимать что копипастишь. Code: procedure randommss(olala:integer); var a,b,c,d,e,f:string;x,i:integer; begin for i:=1 to olala do begin x:=random(26)+65; a:=a+chr(x); end; result:=a; end; 1. Это разве функция? Этот код даже не скомпилится. 2. Нафига столько ненужных переменных? 3. Где инициализация переменной a? Если ты этот код нашел где-то, так хоть бы проверил перед тем как советовать. А если ты его сам написал, то тебе вообще рано кому-то что-то советовать.
уфф, тут вопрос о деньгах ??? я подкинул пример который написал от балды - синтаксис гамно но суть одна и тажа
Хэх, ну если например взять что из 10 строчек одна лишняя, то из 1000 строк будет лишними 100 и т.д. Result используется в функциях, а не в процедурах..