得到一个很长的字符串,现在需要将它分割成每串512个字符,然后分别显示出来。
请大家帮帮忙

解决方案 »

  1.   

    function Copy(S; Index, Count: Integer): string;
      

  2.   

    同意一楼的,就用copy就行了,这个都不用分析,就是一个for循环,然后一直改变
    Index 的值来改变位置就行了
      

  3.   

    var b:TStringList;b:=TStringList.Create;
        while length(s)>512 do
        begin
            b.Add(copy(s,1,512));
            s:=copy(s,81,length(s)-512);
        end;
    b.add(s);
    b.savetofile('C:\1.txt');
    b.free;
      

  4.   

    上面的s:=copy(s,81,length(s)-512);
      是不是有点问题呀?
    请明示!
      

  5.   

    copy(s,start,length);
    s:要copy的字符串原串。
    start:字符起始序号(字符串序号从1开始)
    length:要copy的字符长度。
    返回一个新的长度为length的字符串。
      

  6.   

    如果是D7,建议用MidStr替换Copy函数,对于处理含中文字串比较方便
    另hellolongbin老大的算法上可能有点问题
      

  7.   

    var b:TStringList;b:=TStringList.Create;
        while length(s)>512 do
        begin
            b.Add(copy(s,1,512));
            s:=copy(s,512,length(s)-512); // 第二个串从第一个串的最后一位到源串的最后一位
        end;
    b.add(s); //如果小于512 
    b.savetofile('C:\1.txt');
    b.free;
      

  8.   

    tstringlist有个缺点,把空格默认为分隔符,将时间从字符串中分割出来,只得到日期
      

  9.   

    从别的程序拷来改的
    s:=copy(s,81,length(s)-512);
    这个地方忘改了,81改成513