一个简单的问题:请问,在Delphi中怎样比较字符串并判断字符串为空?(50分)

  • 主题发起人 主题发起人 黑衣人
  • 开始时间 开始时间

黑衣人

Unregistered / Unconfirmed
GUEST, unregistred user!
本人编写的一个程序代码如下:
//定义变量
var ls_pwd1,ls_pwd2:string;
//主体程序
ls_pwd1 := Edit1.Text;
ls_pwd2 := Edit2.Text;
//下面用VarIsNull过程判断字符串是否为空,有没有其他的好办法?
if VarIsNull(ls_pwd1) or VarIsNull(ls_pwd2) then
ShowMessage('字符串为空');
//下面的程序报错,提示类型不符,要怎么解决呢?
if ls_pwd1 <> ls_pwd2 then
ShowMessage('两个字符串不相等');

哪位高手请指教,小弟先谢过了。
 
if ls_pwd1='' or ls_pwd2='' then
最简单的办法! :) 不是吗?
 
if (ls_pwd1='') or (ls_pwd2='') then
ShowMessage('字符串为空');
if ls_pwd1 <> ls_pwd2 then
ShowMessage('两个字符串不相等');

 
哈哈,不错不错,加上个括号就万事大吉了~~~原来如此啊
 
不懂你的意思,我用你的代码试了一下,没有任何问题。
而且你的程序的逻辑比较含糊
第二个if 应该该为 else if

VarIsNull(ls_pwd1) 和字符串是否为空是两码事
为何直接用 trim(ls_pwd1)=''
 
他们的不准确?
ls_pwd1 := trim(Edit1.Text);
ls_pwd2 := trim(Edit2.Text);
if (ls_pwd1='') or (ls_pwd2='') then
ShowMessage('字符串为空');
if ansiuppercase(trim(ls_pwd1)) <>ansiuppercase(trim(ls_pwd2)) then //强行转换大写
ShowMessage('两个字符串不相等');

 
真是。。。 要考虑大小写的话那要考虑的东西就多了! 起码还有右空格!那你的也不准确了!
而且你的也不是真的相等!:)
 
trim是去左右的,我还没听说密码不考虑大小写的。
 
用最简单来实现
 
一定是密码吗?你用半个汉字试一下:) 别这么急噪嘛! 讨论一下而已!当然我承认你的
比我更严密!
 
这没有什么好争论的,根据实际需要写代码就行了。
这些函数什么意思,知道,用的时侯能想起来就行了。
 
if (trim(ls_pwd1)='') or (trim(ls_pwd2)='') then
ShowMessage('字符串为空');
if ls_pwd1 <> ls_pwd2 then
ShowMessage('两个字符串不相等');

 
楼上说的对,区分大小写?好像有这个function?
AnsiCompareStr 函数 比较字符串(区分大小写)
 
多人接受答案了。
 
后退
顶部