本帖最后由 kindao2 于 2014-07-29 11:23:11 编辑

解决方案 »

  1.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      i, j, k: Integer;
      SNum: string;
      Num: string;
      lst:TStrings;
    begin
      lst:=TStringList.Create;
      for i := 0 to 20 do
      begin
        for j := 0 to 5 do
        begin
          Num := 'AAAA='+IntToStr(i)+IntToStr(J)+'   ';
          SNum := num + Snum;
          k := i * 4 + j;
          if (K mod 7 = 0) and (K <> 0) then
          begin
           // ShowMessage(IntToStr(i) + ' : ' + IntToStr(j) + ' : ' + IntToStr(k));
            //Txtmem.Lines.Add(SNum);
            lst.Add(SNum);
            SNum:='';
          end;
    {注释掉 
         if AAAAAAA  then
          begin
            剩余的不够七个的添加到Lst里为一行
          end;
    }
        end;
      end;
    //跳出循环后,如果SNum不为空字符串的话,
    //就是最后不足7个的数据,在这里加入Lst中 
      lst.Add(SNum);
     
      //Txtmem.Lines.SaveToFile('D:\1.txt');
      lst.SaveToFile('D:\2.txt');
    end;
      

  2.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      i, j, k: Integer;
      SNum: string;
      Num: string;
      lst:TStrings;
    begin
      lst:=TStringList.Create;
      for i := 0 to 20 do
      begin
        for j := 0 to 5 do
        begin
          Num := 'AAAA='+IntToStr(i)+IntToStr(J)+'   ';
          SNum := num + Snum;
          k := i * 4 + j;
          if (K mod 7 = 0) and (K <> 0) then
          begin
           // ShowMessage(IntToStr(i) + ' : ' + IntToStr(j) + ' : ' + IntToStr(k));
            //Txtmem.Lines.Add(SNum);
            lst.Add(SNum);
            SNum:='';
          end;
    {注释掉 
         if AAAAAAA  then
          begin
            剩余的不够七个的添加到Lst里为一行
          end;
    }
        end;
      end;
    //跳出循环后,如果SNum不为空字符串的话,
    //就是最后不足7个的数据,在这里加入Lst中 
      if Trim(SNum) <> '' then
        lst.Add(SNum);
     
      //Txtmem.Lines.SaveToFile('D:\1.txt');
      lst.SaveToFile('D:\2.txt');擦,少了个判断。郁闷。
    end; 
      

  3.   


    哦,反了,是
    SNum<>''
      

  4.   

    procedure TForm1.Button2Click(Sender: TObject);
    var
      i, j, k: Integer;
      SNum: string;
      Num: string;
      lst:TStrings;
      tmpPath: string;
    begin
      lst:=TStringList.Create;
      k:= 0;                         //初始化k
      for i := 0 to 20 do
      begin
        for j := 0 to 5 do
        begin
          Num := 'AAAA='+IntToStr(i)+IntToStr(J)+'   ';
          SNum := num + Snum;
          Inc(k);                    //k:=k+1;
          if (K mod 7 = 0) and (K <> 0) then
          begin
            lst.Add(SNum);
            SNum:='';
          end;
        end;
      end;
      if Trim(SNum)<>'' then
        lst.Add(SNum);
      //写到当前目录
      tmpPath:= ExtractFilePath(ParamStr(0));
      lst.SaveToFile(tmpPath + '\2.txt');
    end;
    前面没仔细看代码。
      

  5.   

    procedure TForm1.btnArrayHHClick(Sender: TObject);
    var
      i, j, k, s: Integer;
      SNum: string;
      Num: string;
      lst:TStrings;
    begin
      lst:=TStringList.Create;
      s := 20 * 5 ;
      k := 0 ;
      for i := 0 to 19 do                //20行
      begin
        for j := 1 to 5 do              //5列
        begin
          Num := 'AAAA='+IntToStr(i)+IntToStr(J)+'   ';
          SNum := Snum + num;
          k := (i*5) + j ;
          if K > 0 then
          begin
            if (K mod 7 = 0) then
            begin
              lst.Add(SNum);
              SNum := '' ;
            end
            else
            begin
              if (k = s) then
              begin
                lst.Add(SNum);
              end
            end;
          end;
        end;
      end;
      lst.SaveToFile('D:\2.txt');
    end;
      

  6.   

    别贪心。
    想着一个类处理所有逻辑。
    分步处理。
    1. 把Excel 里的内容,全都保存到一个 TList 或者 TStringList 中。
    2. 直接用一个 int 变量,取出一个增加1.
        满 7 个的时候,加回车。