想生成一个很长的字符串,可能有上万个字符,由26个字母组成,并非重复一个字母上万次。大家讨论一下怎样写效率最高?
解决后再送100分。

解决方案 »

  1.   

    先一次性分配好内存:
    SetLength(S,1000000);
    然后依次修改每个字符
    for i:=1 to Length(S) do
      s[i]:=......这样效率还行
      

  2.   

    谢谢。
    s[i] := 什么?用random吗?因为这个单个字符要求是随机的。可能是a,也可能是c,也可能是z,也可能是(,也可能是*,还可能是&。
      

  3.   

    可以这样:
    Randomize;
    s[i]:=Char(Random(128));
    但是可以是一些不可显示的字符,如果必须要示是可显示的字符,可以将这些字符定义为一个常数数组,然后随机生成下标来取.
      

  4.   

    vArr: array ['a'..'z'] of char;
    ...
    Randomize;
    s[i]:=vArr[Random(26)];
      

  5.   

    结帖,请三位到以下帖子,再送100分以示感谢。
    http://community.csdn.net/Expert/topic/3788/3788329.xml?temp=.2333185