要求根据输入的参数进行长度补位项目号(20)  数量3位  项目名称(40)  状态(2) 设计人(5)函数名:
function uf-setitemtitle(aitemID:string;aNum:string;aItemName:String;aItemState:string;
aDesigner:String):string都是字符串型数据要求:项目名称如果大于40位就不补空格,小于40位就用空格补到40位,其他字段如果没到应有位数(括号里是位数)就用空格补够位.

解决方案 »

  1.   

    function uf-setitemtitle(aitemID:string;aNum:string;aItemName:String;aItemState:string;
    aDesigner:String):string
    var
      function GetLenStr(LenStr : String; vLen : Integer) : String;
      begin
        Result := LenStr;
        while Length(Result) < vLen do
          Result := Result + ' ';
      end;
    begin
      Result :=
      GetLenStr(aitemID, 20) +
      GetLenStr(aNum, 3) +
      GetLenStr(aItemName, 40) +
      GetLenStr(aItemState, 2) +
      GetLenStr(aDesigner, 5);
    end;
      

  2.   

    format函数即可Format('x=%4d', [12]); //'x=  12' //指定宽度, 如果%号后面的数字是负数,则是后面补空格
      

  3.   

    对字符串
    Format('x=%10s', ['abc']);
      

  4.   

    hthunter兄,你怎么总是在和我抢分呀!
    呵呵!和你开个玩笑!用Format('x=%10s', ['abc'])是在字符串之前加空格,
    根据楼主的意思,应该是在字符串之后加空格!
      

  5.   

    多谢各位大哥小弟能不能有幸认识2位??msn:[email protected]
      

  6.   

    hthunter兄就是厉害,以前我只用过Format在前面加空格,补0等功能,但没用在后面加!
    现修改一下:更简单一些:function uf-setitemtitle(aitemID:string;aNum:string;aItemName:String;aItemState:string;
    aDesigner:String):string
      function GetLenStr(LenStr : String; vLen : Integer) : String;
      begin
        result := Format('%-' + IntToStr(vLen) + 's', [LenStr])
      end;
    begin
      Result :=
      GetLenStr(aitemID, 20) +
      GetLenStr(aNum, 3) +
      GetLenStr(aItemName, 40) +
      GetLenStr(aItemState, 2) +
      GetLenStr(aDesigner, 5);
    end;