如何判断一个字符串是否是常数

sincerity 2002-11-13 11:39:37
如题,有这样的函数吗?判断一个字符串是不是只由数字组成的?
...全文
110 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
shuixin13 2002-11-14
  • 打赏
  • 举报
回复
楼主呢??
My_first 2002-11-14
  • 打赏
  • 举报
回复
function IsNum(str: string): Boolean;
var
i: Integer;
begin
Result := True;
for i := 1 to Length(str) do
if not (str[i] in ['0'..'9']) then
begin
Result := False;
Break;
end;
end;


这种写法非常好。如果其这的系统不支持这种写法。你改一下不就是了
shuixin13 2002-11-14
  • 打赏
  • 举报
回复
我用的不是纯正的 Delphi,是另一种在 Delphi 基础上做的东西

??

别人做的一个系统?系统里可以自己加入脚本??!!!
sincerity 2002-11-14
  • 打赏
  • 举报
回复
糟糕,这两种方法我都用不了。

我用的不是纯正的 Delphi,是另一种在 Delphi 基础上做的东西。

第一种方法在 if not(str[i] in ['0'..'9']) then 这句提示少一个 ) 。

第二种方法提示不认识 Val。

以上方法在 Delphi 里都是正确的,只可惜……

惨惨,还有其他的方法吗?
foreveryday007 2002-11-14
  • 打赏
  • 举报
回复
自己看懂了就行,何必要源碼
sincerity 2002-11-14
  • 打赏
  • 举报
回复
哈哈,谢谢 smilelhh(blue),我怎么想不到这种方法呢?:)

把 StrToInt 改成 StrToFloat 就完美了,谢谢:)

结帖。
hfycl 2002-11-14
  • 打赏
  • 举报
回复
up
DelUser 2002-11-14
  • 打赏
  • 举报
回复
function IsNum(str: string): Boolean;
var
i: Integer;
begin
Result := True;
for i := 1 to Length(str) do
try
StrToInt(str[i]);
except
result := False;
Break;
end;
end;
end;
smilelhh 2002-11-14
  • 打赏
  • 举报
回复
try
i:=StrToInt(edit1.text);
except
i:=0;
end; //;)
sincerity 2002-11-14
  • 打赏
  • 举报
回复
回 shuixin13(犬犬(心帆)),没错,可以自己写脚本,并且除了 Delphi 外,也支持 Java,VB,Perl 等等的其他 Script,将来还支持 .net。其实大家应该听说过,是北京一家公司开发的软件。

谢谢大家上面的帮忙,对 Delphi 来说我还是个生手,很多东西我都还不知道,在此表示衷心地感谢。

上述语句我还是没法用,我忘了说了,我这儿的常数包含小数。再等会看看,晚上结帖:)
shuixin13 2002-11-13
  • 打赏
  • 举报
回复
(*//
标题:检查数字字符串
说明:使用于运用程序检查用户数字输入
设计:Zswang
日期:2002-01-24
支持:wjhu111@21cn.com
//*)

///////Begin Source
function IsNumber(mStr: string): Boolean; { 返回字符串是否是正确的数字表达 }
var
I: Real;
E: Integer;
begin
Val(mStr, I, E);
Result := E = 0;
E := Trunc(I);
end; { IsNumber }

function IsInteger(mStr: string): Boolean; { 返回字符串是否是正确的整数表达 }
var
I: Integer;
E: Integer;
begin
Val(mStr, I, E);
Result := E = 0;
E := Trunc(I);
end; { IsInteger }

function IsHex(mStr: string): Boolean; { 返回字符串是否是正确的十六进制表达 }
var
I: Integer;
begin
Result := true;
for I :=1 to Length(mStr) do
begin
//P := Copy(mStr,I,0);
if Pos(Upcase(mStr[I]),'0123456789ABCDEF')>0 then
Result :=Result and true
else
Result :=Result and false;
end;
end;
///////End Source

///////Begin Demo
procedure TForm1.Button1Click(Sender: TObject);
begin
CheckBox1.Checked := IsNumber(Edit1.Text);
CheckBox2.Checked := IsInteger(Edit1.Text);
end;
///////End Demo
cnsuyong 2002-11-13
  • 打赏
  • 举报
回复
Sorry: 严格地说,Val是一个过程。
cnsuyong 2002-11-13
  • 打赏
  • 举报
回复
下面是Delphi中标准函数StrToInt的源代码,其中用到System单元Val内部函数,判定字符串是否整数最简单直接而且不会产生异常。
function StrToInt(const S: string): Integer;
var
E: Integer;
begin
Val(S, Result, E);
if E <> 0 then ConvertErrorFmt(@SInvalidInteger, [S]);
end;
chechy 2002-11-13
  • 打赏
  • 举报
回复
function IsNum(str: string): Boolean;
var
i: Integer;
begin
Result := True;
for i := 1 to Length(str) do
if not (str[i] in ['0'..'9']) then
begin
Result := False;
Break;
end;
end;

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧