比如生成    001----200 之间的数字  001 与002  分别填在edit1和edit2中001
002
003
.......200

解决方案 »

  1.   

    var
    i,Num:integer;
    s:string;
    begin
    for i:=strtoint(Edit1.text) to strtoint(Edit2.text) do begin
    Num:=Length(Edit1.Text)-Length(IntToStr(i));
    case Num of
    1: s:='0'+IntToStr(i);
    2: s:='00'+IntToStr(i);
    3: s:='000'+IntToStr(i);
    4: s:='0000'+IntToStr(i);
    5: s:='00000'+IntToStr(i);
    6: s:='000000'+IntToStr(i);
    7: s:='0000000'+IntToStr(i);
    8: s:='00000000'+IntToStr(i);
    9: s:='000000000'+IntToStr(i);
    10: s:='0000000000'+IntToStr(i);
    end;
    begin
    adoquery1.Insert;
    adoquery1.FieldByName('票号').Value:=s;
    adoquery1.Post;
    end;
    end;
    end;这是我写的,但001-099 之间正常,100以后就不行了
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        i,j,iValue:integer;
        len,len1:integer;
        str:string;
    begin
        len:=Length(Edit2.Text);
        for i:=StrToInt(Edit1.Text) to StrToInt(Edit2.Text) do
        begin
            str:='';
            len1:=Length(IntToStr(i));
            for j:=len1 to len-1 do
                str:=str+'0';
            str:=str+IntToStr(i);
            Memo1.Lines.Add(str);
    ////////此处对str处理。
        end;
    end;
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
        i,j,iValue:integer;
        len,len1:integer;
        str:string;
    begin
        len:=Length(Edit2.Text);
        for i:=StrToInt(Edit1.Text) to StrToInt(Edit2.Text) do
        begin
            str:='';
            len1:=Length(IntToStr(i));
            for j:=len1 to len-1 do
                str:=str+'0';
            str:=str+IntToStr(i);
    //        Memo1.Lines.Add(str);
    ////////此处对str处理。
            begin
              adoquery1.Insert;
              adoquery1.FieldByName('票号').Value:=str;
              adoquery1.Post;
            end;
        end;
    end;