function SetNewString(const S: string): string;
const
  Len = 10;
var
  I: Integer;
begin
  I := Len - Length(S);
  while I >= 0 do
  begin
    Result := Result + '0';
    Dec(I);
  end; 
  Result := Result + S
end;  
好像是很不简练,我想不道其它方法了。

解决方案 »

  1.   

     edit1.text:=concat('000000','12');
      

  2.   

    edit1.text:=concat('000000','12'); 最好不要用Concat那是16位的函数,改用+号吧!!
      

  3.   

    to Asus(风月无边)andCappuccino(小喆) 
    我当然不只是简单的相加了,如果这样,我还问什么
    to copy_paste(木石三)   
    我也觉得比较麻烦了,因为我早就想到了,不知道有没有更好的方法可以在数值小于8位的时候嫩能够前面补充0使他达到8位
      

  4.   


    procedure LeftFillStr(var Result:String;const Str2: String; Len: Integer);
    begin
      while length(Result) < Len do Result := Str2 + Result
    end;调用:var
      S: string;
    begin 
      S := '12'; 
      LeftFillStr(S, '0', 10);
      ShowMessage(S);
    end;
    哈哈。好东西。
      

  5.   

    edit1.text:=formatfloat('0000000000', 12);
      

  6.   

    如果可以保存证是数字的话,可以这样:
    FormatFloat( '00000000', StrToInt( '12' ) );
      

  7.   

    var s0:array[1..8] of char;
        s: string;fillchar(s0,sizeof(s0),#48);
    s:='12';
    s:=copy(s0,1,length(s0)-length(s))+s;
    ShowMessage(S);
      

  8.   

    一个小技巧
    edit1.text:=format('%p',[pointer(strtoint(str1))]);
      

  9.   

    to hlfsoft(何软):sorry,你的输出为十六进制
      

  10.   

    不错,我输出的是十六进制,
    pointer(99):00000099
    但是然后strtoint(edit1.text)呢?
    这里只是一个技巧问题,(针对这个问题而言)
      

  11.   

    Var s : String;
        i, len : Integer;
    ...
      SetLength( S, 100 );
      i:=12;
      len := wvsprintf( PChar(s), '%08d', @i );
      S[Len+1] := Chr(0);
    ...
      

  12.   

    function FormatString( input: string, output : string)begin
       outputstr := inputstr; 
      while length(outputstr) < 8 do
        outputstr := '0' + outputstr;
    end;  
      

  13.   

    使用API sprintf,其中可以指定输出字符的宽度
      

  14.   

    呵呵,循环太麻烦了,
    str:需要格式化的字符串内容
    nLen:格式化的结果的长度
    Edit1.Text:=Copy('00000000'+str,Length('00000000'+str)-nLen+1,Length('00000000'+str));
    基本思想是:
    如果结果统一为8位,就在此字符串前加8个0,然后取最后的8位即可。
      

  15.   

    敲错了,应该是:Format ('%0.8d', [12]); 
      

  16.   

    chenshirong(抱琴):翻看这贴,猛的看到自己的写法是错的,一直想当然,he~
    正确的写法是:
    procedure TForm1.Button2Click(Sender: TObject);
    var
    i:integer;
    s:string;
    begin
      i:=10;
      s:='$'+inttostr(i);
      edit1.Text:=format('%p',[pointer(strtoint(s))]);
    end;