在delphi中如何解决空格的问题。。。。烦死 了。。。。

FormatJAVA 2008-01-25 10:19:44
我每次从数据库里面取数据出来和Edit里面的进行比较的时候总是会受到
空格的困扰。。。老是干扰我。。。
如果我用trim 所有都做去掉所有的空格那么这样就非常麻烦又繁琐。。
有没有什么方法可以忽略空格的。。。

还有就是我如果用Edit1.SetFocus对 其进行选中。。那么我如果不把字符串全部删除呢么就会有限定:

我能输入的字符+原有的空格=MaxLength(我先设定的值)

这又如何解决。。。

那位大哥快告诉我。。。谢谢 非常感谢。。。
...全文
890 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
ZyxIp 2008-01-29
  • 打赏
  • 举报
回复
保存的时候去掉空格就可以了.
ofoy 2008-01-29
  • 打赏
  • 举报
回复
describe clearly.
FormatJAVA 2008-01-25
  • 打赏
  • 举报
回复
if (Trim(FieldByName('AdminID').AsString)<>'') and
(Trim(FieldByName('AdminID').AsString)=Trim(Edit1.Text)) then begin
Label10.Caption:='您要添加的管理员ID已存在';
Edit1.Text:=StringReplace(Edit1.Text,#32,'',[rfReplaceAll]);
Edit1.SetFocus;
Exit;
end;
FormatJAVA 2008-01-25
  • 打赏
  • 举报
回复
呵呵 问题我已经解决了。。谢谢两位。。。呵呵 我做如下处理。。

if (Trim(FieldByName('AdminID').AsString)<>'') and
(Trim(FieldByName('AdminID').AsString)=Trim(Edit1.Text)) then begin
Label10.Caption:='您要添加的管理员ID已存在';
Edit1.Text:=StringReplace(Edit1.Text,#32,'',[rfReplaceAll]);
Edit1.SetFocus;
Exit;
end;


加一条加红的就不会了。。呵呵。。
t2008123456 2008-01-25
  • 打赏
  • 举报
回复
将数据数中固定长度Field换是可变的
如MS-SQL 的话,将Field Type 改成 char->varchar
jadeluo 2008-01-25
  • 打赏
  • 举报
回复
TEdit.SetFocus是不会在12345后面加5个空格去凑MaxLength的长度的。
FormatJAVA 2008-01-25
  • 打赏
  • 举报
回复
if (FieldByName('AdminID').AsString<>'') and
(FieldByName('AdminID').AsString=Edit1.Text) then begin
Label10.Caption:='您要添加的管理员ID已存在';
Edit1.SetFocus;
Exit;
end;

你误会了。。。我的意思是 用户输入有误。。然后 Edit1.SetFocus;
这个时候我要去掉空格
那里面的是用户输入的错误的内容。。后面的5个空格是 Edit1.SetFocus;自动选择中的。。。
jadeluo 2008-01-25
  • 打赏
  • 举报
回复
我用 MaxLength 限定了Edit只能输入10个字符
然后当我里面有5个字符(abcde)的时候。。我用Tab键对它选中,加颜色的内容(abcde )(包括5空格)

当里面有5个字符(abcde),这5个字符哪里来的?
后面的5个空格哪里来的?
你用的是什么组件?
FormatJAVA 2008-01-25
  • 打赏
  • 举报
回复
会矛盾吗??

那里有矛盾呢?? 呵呵

其实我就是要怎么自动去掉Edit里面的右空格。。。
僵哥 2008-01-25
  • 打赏
  • 举报
回复
不觉得自相矛盾?
FormatJAVA 2008-01-25
  • 打赏
  • 举报
回复
呵呵 很抱歉我没说清楚。。。

我用 MaxLength 限定了Edit只能输入10个字符
然后当我里面有5个字符(abcde)的时候。。我用Tab键对它选中,加颜色的内容(abcde )(包括5空格)
这时候我不删除全部。。我用鼠标选中那5(abcde)个字符删除 里面就剩下后面那5个字符了。。
这时候我在开始输入(注意前面操作还有5个空格没删除) 这时候就只能再输入5个字符了。。

我的目的是要 我用Tab键对它选中,加颜色的内容只有(abcde)(不包括5空格)
然后我继续输入的时候又能输入10个字符。。

僵哥 2008-01-25
  • 打赏
  • 举报
回复
5楼的描述不太好理解。MaskEdit?
FormatJAVA 2008-01-25
  • 打赏
  • 举报
回复
我现在的问题是这样的:

因为我限定了Edit只能输入10个字符。。
然后当我里面有5个字符的时候。。我用Tab键对它选中的时候 其实选中的是10个字符。。
当用户要输入的时候 他不是全部删除。。而是只删除了那5个字符。。然后进行输入。。
这样 他就只能 输入5个字符。。后面的5个就被空格占了。。不能输入了。。
jadeluo 2008-01-25
  • 打赏
  • 举报
回复
从根源处解决吧,保存进数据库的数据不要多空格,不就行了?
僵哥 2008-01-25
  • 打赏
  • 举报
回复
如果是你刻意添加的,那就是你自己的问题了,这个没有办法。在数据库当中,右空格是可以被忽略的,但是左空格就是数据,同样的在Edit当中,除非你特定,否则在某些时候用户还是有必要输入空格等数据的。
FormatJAVA 2008-01-25
  • 打赏
  • 举报
回复
rtrim是取出右空格吗》??? 其实我就是要解决。。Edit里面的那个多余空格
让用Tab或是SetFocus的时候它能自动缩进。。。
有多少字符就是多少。。不会留有空格。。。

rtrim好像只能去掉字符里面的空格吧??

僵哥 2008-01-25
  • 打赏
  • 举报
回复
rtrim

5,388

社区成员

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

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