function TfrmComModify.IsStrANumber(NumStr: string): bool;
begin
  result := true;
  try
    StrToInt(NumStr);
  except
    result := false;
  end;
end;
这函数是用来判别字符串是否是数据,
但问题出来了,当字符串所表达的数据大过整形数据时,就会出错。
只好重新写过个函数,但一时没有好的算法。
大家有什么好的算法,谢谢。

解决方案 »

  1.   

    function TfrmComModify.IsStrANumber(NumStr: string): bool;
    var i:integer;
    begin
      result := true;
      for i:=1 to Length(NumStr) do
      if Not (NumStr[i] in ['0'..'9']) then
      begin
        Result:=False;
        Break;
      end;
    end;
      

  2.   


    function IsInt(AStr: string): Boolean;
    var
      Value, Code: Integer;
    begin
      Val(AStr, Value, Code);
      Result := Code = 0;
    end;function IsFloat(AStr: string): Boolean;
    var
      Value: Real;
      Code: Integer;
    begin
      Val(AStr, Value, Code);
      Result := Code = 0;
    end;