我定义的编号为char型的6位长度,我是这样的 如:后3位全部是000001现在要加一变成000002怎么处理。我进行强制类型转换后相加,在转换回来变成了2,怎么让它变成000002。多谢!

解决方案 »

  1.   

    function setNo:string;
    var
    i:string;
    begin
    i:='00000';
    i:=i+inttostr(你转换回的变量);
    result:=i;
    end;
      

  2.   

    Str := Left(Str,Length(IntToStr(StrToInt(Str))))+IntToStr(StrToInt(Str)+1);
      

  3.   

    left好像不可以吧,你看看上面是不是能编译过去,类型不匹配。
      

  4.   

    不好意思 函数写错Str := LeftStr(Str,Length(IntToStr(StrToInt(Str))))+IntToStr(StrToInt(Str)+1);
      

  5.   

    又犯错误 应该是Str := LeftStr(Str,Length(Str) - Length(IntToStr(StrToInt(Str))))+IntToStr(StrToInt(Str)+1);
      

  6.   

    哪要这么麻烦,用FormatFloat函数究轻松搞定了
    FormatFloat('000000', StrToInt(Str)+1);
      

  7.   

    多谢!但是我的字符是18位的,运行后提示
    '000000000000000000'is not a vaild integer value
    000000000000000000是我要运算的字符串,是不是长度的问题。
      

  8.   

    FormatFloat()  不错 学习ing
      

  9.   

    function IntToFixLengthStr(Value: Integer; StrLength: Integer; FillChar: Char): string;
    begin
      Result := IntToStr(Value);
      Result := StringOfChar(FillChar, StrLength - Length(Result)) + Result;
    end;
      

  10.   

    如果保证字符全部是数字的话可以用以下方法。
    function GetNextNo(CurNo: String): String;
    var m_S:String;
    const len=6;
    begin
     m_S:=IntToStr(StrToInt(CurNo)+1);
     if length(m_S)<len then
       repeat
          m_S:='0'+m_S;
       until
        Length(m_S)>=len;
      result:=m_S;
    end;
      

  11.   

    for i := 1 to 9999 do
      begin
        case length(inttostr(i)) of
          1: str := '000' + inttostr(i);
          2: str := '00' + inttostr(i);
          3: str := '0' + inttostr(i);
          4: str := inttostr(i);
        end;
      

  12.   

    刚刚写得有点随手:下面的已做测试,加多少0都可以,注意各参数的类型。
    function setNo(j:integer):string;
    var
    i:string;
    begin
    i:='00000000000000000000000';
    i:=i+inttostr(j);
    result:=i;
    end;
      

  13.   

    to  net_jun(小鸟) 
     i:=i+inttostr(1);这样不是字符串的连接吗?怎么能够相加呢?你真的能够测试通过。我怎么就测试不行呢还是在后面加的。
      

  14.   

    我怎么就搞不出来呢 我定义了一个integer变量的 a:=StrToInt(str)+1;
    然后我调用你的函数,可是得出还不是我要的那个结果啊!