用Delphi生成随机数的问题
我想随机取得一个TXT文件中的某一行,下面的代码中Start的作用是得到一个TXT文件共有多少行,CreateMsg是随机得到某一行内容,但我发现一个问题:变量line始终为0,而lines的值是正确的,把line:=Random(lines);改成line:=Random(4);却可以,只是有时也会为0。请问line:=Random(lines);为什么不行,要怎样才能取到1~lines之间的整数呢?
var lines:Integer
function Start:LRESULT;stdcall;export;
var
text:string;
begin
lines:=0;
AssignFile(TxtFile,'c:\text.txt');
Reset(TxtFile);
while not Eof(TxtFile) do
begin
Readln(Txtfile,Text);
lines:=lines+1;
end;
CloseFile(TxtFile);
end;
function CreateMsg:string;stdcall;
var
i,line:Integer;
Text:string;
begin
Randomize;
line:=Random(lines);
AssignFile(TxtFile,'c:\text.txt');
Reset(TxtFile);
for i:=1 to line do
Readln(Txtfile,Text);
Result:=#13+Text;
CloseFile(TxtFile);
end;