有10个基数和10个步长和需要输出的N倍取出memo1包含的第一个%d用第1基数和步长,以此类推
memo1的内容以N的倍数输出到memo2例:   
memo1的内容
abc%dcf%d
abc%d
参数1的基数为0,参数1的步长为1 
参数2的基数为1,参数2的步长为2
参数3的基数为3,参数3的步长为3
输出为memo1的倍数5memo2的输出内容如下
abc0cf1
abc3abc1cf3
abc7abc2cf5
abc11abc3cf7
abc15abc4cf9
abc19有什么好的实现方法,如果大于100000倍的时候,就要考虑输出效率如果用多线程输出,应该怎么写.新手麻烦各位不吝赐教.

解决方案 »

  1.   

    真的难懂,好像总算懂了
    没必要多线程
    a1:=0; d1:=1;
    a2:=1; d2:=2;
    a3:=3; d3:=3;
    memo2.lines.beginupdate;
    for i:=1 to 10 do
    begin
      memo2.lines.add(format(memo1.lines.text,[a1,a2,a3]));
      inc(a1,d1);
      inc(a2,d2);
      inc(a3,d3);
    end;
    memo2.lines.endupdate;
      

  2.   

    sz_haitao的代码符合楼主的需求。
      

  3.   


    基数,步长个数固定的情况,如果包含的%d超过3个以后该什么判断?超过%d如何以原型%d输出
      

  4.   


    先s:=memo1.lines.text;
    再循环用pos('%d',s1)再删除前面的方法找出第3个%d的位置x,
    s1:=copy(s,x+2,1024*1000);
    把s1里的%d替换为%%d
    然后s:=copy(s,1,x+1)+s1;
    a1:=0; d1:=1;
    a2:=1; d2:=2;
    a3:=3; d3:=3;
    memo2.lines.beginupdate;
    for i:=1 to 10 do
    begin
      memo2.lines.add(format(s,[a1,a2,a3]));
      inc(a1,d……