从1到33里面随机取6个不重复的数字:procedure TForm1.Button1Click(Sender: TObject); var Sl: TStringList; S: String; I: Integer; begin Randomize; Sl := TStringList.Create; for I := 0 to 5 do begin while true do begin S := IntToStr(Random(33) + 1); if Sl.IndexOf(S) < 0 then begin Sl.Add(S); Break; end; end; end; S := ''; for I := 0 to Sl.Count - 1 do S := S + '|' + Sl.Strings[I]; FreeAndNil(Sl); ShowMessage(S); end;
procedure TForm1.Button1Click(Sender: TObject);
var
a,b,c,d,e,f:real;
i:integer;
ss:string;
beginrandomize;
for i:=1 to 33 do begin
a:=random(33);
b:=random(33);
c:=random(33);
d:=random(33);
e:=random(33);
f:=random(33);
end;
ss:=floattostr(a)+floattostr(b)+floattostr(c)+floattostr(d)+floattostr(e)+floattostr(f);
showmessage(ss);end;end.
2.有一个字符假设 SS:=ddddddddd
我想取前面的四位什么样取出来,谢谢! 在DELPHI什么样取字符,用哪个函数?
不过你如果想取1~33之间的数可以用Random(33)+1,如果不包括33就用Random(32)+1,结果是整数。
var
Sl: TStringList;
S: String;
I: Integer;
begin
Randomize;
Sl := TStringList.Create;
for I := 0 to 5 do
begin
while true do
begin
S := IntToStr(Random(33) + 1);
if Sl.IndexOf(S) < 0 then
begin
Sl.Add(S);
Break;
end;
end;
end;
S := '';
for I := 0 to Sl.Count - 1 do
S := S + '|' + Sl.Strings[I];
FreeAndNil(Sl);
ShowMessage(S);
end;