我要完成的是:
接受客户输入一个字符串,分别归类
数字的按照他输入的顺序归数字一类放到一个变量里
字符的按照他输入的顺序归字符一类放到一个变量里他有可能输入的是L00001
归类以后数字还要自动加1,但以加1,00001就变成了2前面的0没有了有没有自动填充的,规定几个字符不够的用0补
有什么好的办法也可以说说

解决方案 »

  1.   

    对于判断是数字还是字符,可以用strtoint来转换
      

  2.   

    判断字符位数,不够就在前面加上0
    format函数应该可以
      

  3.   

    Format('%.8d', [1]);
    返回的结果是:00000001(总共八位,前面不够补0)
      

  4.   

    呵呵,也可以用copy方法,重新合成字符串。
    copy('00000000',1,8-length(str))+str
      

  5.   

    //function   FillZero 补零函数
    //param      strNum 待补零数字
    //           iValidNum  补零位数
    function FillZero(strNum: string; iValidNum: Integer);
    var
      i : Integer;
      strZero : string;
    begin
      strZero := '';
      for i := 0 to  iValidNum - 1 do
        strZero := strZero + '0';  Result := RightStr(strZero + strNum, iValidNum);
    end;
      

  6.   

    function FillZero(strNum: string; iValidNum: Integer): string;
    begin
      Result := StringOfChar('0', iValidNum - Length(strNum)) + strNum;
      Delete(Result, 1, Length(strNum) - iValidNum);
    end;
      

  7.   

    给你做一下,不知是否合你的意思
    function IsNum(c:char):boolean;
    begin
    if c in ['0'..'9'] then
       result:=true else result:=false;
    end;procedure DevStr(str:string;var numStr,StrStr:string);
    var
    i,index:integer;
    begin
    index:=0;
    for i:=length(str) downto 1 do
        if not IsNum(str[i]) then
           begin
           index:=i;
           break;
           end;
    if index=length(str) then//如果最后一个字符是字符,那么退出
       begin
       numStr:='';
       strstr:=str;
       exit;
       end;
    if index=0 then//如果全部是数字,那么退出
       begin
       numstr:=str;
       strstr:='';
       exit;
       end;
    strstr:=copy(str,1,index);
    delete(str,1,index);
    numstr:=str;
    end;function GetIncNumStr(numstr:string):string;
    var
    len,len1:integer;
    n,i:integer;
    s:string;
    begin
    len:=length(numstr);
    n:=strtoint(numstr)+1;
    s:=inttostr(n);
    len1:=length(s);
    for i:=1 to len-len1 do
       s:='0'+s;
    result:=s;
    end;function IncStr(s:string):string;
    var
    cs,ns:string;
    begin
    DevStr(s,ns,cs);
    result:=cs+GetIncNumStr(ns);
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
    showmessage(incstr('L00001'));
    end;
      

  8.   

    function IncStr(const S: string): string;
     
      function IncChar(var C: Char): Boolean;
      begin
        Result := C = '9';
        if Result then
          C := '0'
        else
        if C in ['0'..'8'] then
          Inc(C);     
      end;var
      L: Integer;
    begin
      Result := S;
      L := Length(Result);
      while IncChar(Result[L]) do
        Dec(L);
    end;IncStr('L001');
    IncStr('L999');