字段 s要是string 类型的话
可以给一个初值:000000000000
string 其实是当作一个数组来用的,如果你是1的话,用s[11]:=1就可以了
最后在数据库中的就是000000000001

解决方案 »

  1.   

    最笨的做法:
    var s:integer;
    begin
     s:=length(Table1.fieldbyname().asstring);
     case s of 
      1:Table1.fieldbyname().asstring:='00000000000'+Table1.fieldbyname().asstring;
      2:Table1.fieldbyname().asstring:='0000000000'+Table1.fieldbyname().asstring;
     .
     .
     .
     .
      11:Table1.fieldbyname().asstring:='0'+Table1.fieldbyname().asstring;
    end;
    详细的自己再琢磨琢磨!!!!!!!!!!!!也就是你先判断字段的长度,然后少多少位就在前面加多少个0!
      

  2.   

    s:=trim(edit1.Text);
    i:=length(s);
    j:=i;
    for i:=1 to j do
    s[12-i]:=right(s,i);
    一个思路,顺手写的,没有调试果,你自己在看看
      

  3.   

    function leftfill(const sVal: string): string;
    begin
      Result := Copy(sVal, 1,12);
      while Length(Result) < 12 do Result := '0' + Result;
    end;
    记得给分那,我也很穷啊
      

  4.   

    function GetLenStr(source:string;Len:Integer):string;
    var
      Alen,i:Integer;
      tems:string;
    begin
      tems:='';
      Alen:=Length(Source);
      if Alen>Len then
         Result:=copy(source,1,Len)
      else  begin
         for i:=0 to len-Alen do
           tems:=tems+'0';
         result:=tems+Source;
      end;            
    end;
    ---------------------
    GetLenStr('1',12) 得到'000000000001'
    GetLenStr('abc',1)得到'a'
      

  5.   

    s:=trim(edit1.Text);
    i:=length(s);
    case i of
      
       1 : s:='000000'+s;
       2:  s:='00000'+s;
       .......
      

  6.   

    刚才写错了function GetLenStr(source:string;Len:Integer):string;
    var
      Alen,i:Integer;
      tems:string;
    begin
      tems:='';
      Alen:=Length(Source);
      if Alen>Len then
         Result:=copy(source,1,Len)
      else  begin
         for i:=1 to len-Alen do       //这个地方写错了
           tems:=tems+'0';
         result:=tems+Source;
      end;            
    end;