我的memo中有1000行数据,每行都是形如 1,2,3,4,5,6,7 这样7个一组的数字,现在我想随机从中取出500行,怎么做?我是新手,请最好代码提示?谢谢
解决方案 »
- 在异步运行时,操作不能被执行
- fastreport 如何实现动态修改picture的大小
- 推荐一下delphi的网站
- 关于 ClientDataSet 中 fliter 过滤中文的一些问题?
- 请问各位大哥,为什么我的帐号每天才能加10分?我昨天帮人家回答问题人家都给了我30分了
- 2003年最后一题:怎么实现这样的代码输入
- 简单的mdi问题!
- edit控件中的text属性,当没有任何值输入时,如何判断它的值是空的?
- 为什么在dbgrid中删除的记录在数据库中并没有被删除?
- 急急急急delphi excel导入access,再从access里提取数据然后生成曲线,然后打印,全部的分数都送出来了,如果不够,有了再给,钱也可以,急用了,谢谢了
- 两个程序 想做成一个运行
- 程序中遇到一个很麻烦的问题,关于memo输入时自动适应输入的文字总宽度.
while num=500 do
begin
if 随机数 小于=1000随机数 then //memo1的行
begin
// 记录已经抽取随机数 用个数组记录已经被抽取的行。
if 已经抽取的行就排除,避免重复抽取到相同的行 then
begin
memo2.lines.add();
inc(num); //抽到了一个就加1,不然继续下一个循环,取随机。
end;
end;
end;
一、常用的获取真正随机数的代码我们都知道在Delphi中获取随机数的函数是Random(),比如我们要取得1-100的随机数,一般是使用 Random(100)+1,但使用这个函数取的随机数,其实只是个伪随机数,这是因为Random函数是根据随机种子采用固定算法取得的随机数,在程序运行中会导致每次运行会取得与上次运行相同的数字。为此,Delphi提供了重置随机种子的语句Randomize,这样在每次使用Random之前都运行一次Randomize,就可以取得真正的随机数。代码参考如下:Randomize;
Result:=Random(100)+1;//Random(100)所取得的值为>=0 而<100的值二、我用的获得真正随机数的代码这个代码其实是在上面的代码变化而来的,也许有人会觉得似乎没有必要,但这只是我探求更加随机数的方法,有点类似C语言以当前时间重置随机数的方法,我的思路是以当前时间与较大范围内的随机数相加作为弧度计算正弦值,这样取整再获取所需范围的随机数。但这里需注意的是,由于弧度取正弦,这个值与理论上-1<=x<=1还是有差别的,可以说其值在0<|x|<1范围内。我的代码如下:Randomize;
Result:=Trunc(Int(Abs(Sin(Integer(SecondOfTheYear(Now))+Random(10000))*100))+1);
2.random就够了。
3.num := 0;
While num < 500 do
然后原数据随机取一行存入stringlist中 就删除原数据中一行
判断存数据的数组够不够500即可