如果判断获得的一个字符串中每一个字符都是数字?
翻着手册还是搞不定:(

解决方案 »

  1.   

    对字符串中的每个字符处理,就可以了啊
    function IsAllNumber(S:String):Boolean;
    var
      i:integer;
    begin
      result:=true;
      for i:=1 to Length(s) do
      begin
        if (ord(s[i])<ord('0')) or (ord(s[i])>ord('9')) then
        begin
          result:=false;
          break;
        end;
    end;
      

  2.   

    简单!
    var
    s:string;
    begin
      try
        strtoint(s);
        showmessage('全是数字');
      except
       showmessae('不全是数字');
      end;
      

  3.   

    不好意思,上面的程序最后还少了一个
    end;
      

  4.   

    如果楼主没用过异常处理,有一点我想说一下:你在编译通过时是不能看到自定制对话框的,因为DELPHI的错误提示拦截了,你先编译,然后执行可执行文件.exe就是那个带电的图标了
      

  5.   

    还有一种方法,来得比较直接
    function IsAllNumber(S:String):Boolean;
    begin
      result:=true;
      try
        StrToInt(S);
      except
        on EConvertError do
          result:=false;
      end;
    end;
      

  6.   

    crapex(编程浪子)的好,呵呵,xiaoqing123的也对,不过,他忘了,如:
    S := '11111111111111111111111111111111111111111111111111111111';
    你还得什么?
    function IsAllNumber(S:String):Boolean;
    var
      i:integer;
    begin
      result:=true;
      for i:=1 to Length(s) do
      begin
        if (ord(s[i])<ord('0')) or (ord(s[i])>ord('9')) then
        begin
          result:=false;
          break;
        end;
    end;
      

  7.   

    看见楼上的,我也想起了一个问题
    在进行StrToInt的时候
    如果s='-1',是不会出现异常的,
    此时也不全是数字
    所以的确存在两种用异常不能判断情况,
    一种就是数字过大,大于int64所代表的范围,
    一种就是负数,不过这个可以在转换后再判断一次
    :)