100分问题,请教一下一些判断是如何实现的,EDIT框里,我要限制输入一些条件,具体如下:(100分)

  • 主题发起人 主题发起人 chenqi212
  • 开始时间 开始时间
C

chenqi212

Unregistered / Unconfirmed
GUEST, unregistred user!
1/自动取汉字的拼音码是可以了,但是象书名如何只取汉字的拼音5个,而其他标点符号和空格,
英文字母都不取呢?也就是如何判断输入的是否是汉字和标点符号等等

2如何判断用户输入到edit里的是汉字?还是英文字母还是数字?

2个问题,请高手指教,贴出来好吗?谢谢
 
在KeyPress事件中过滤key即可。
 
把它放到String
s: string;
s := Edit1.Text;
逐个判断:
i: Integer;
for i:= 1 to Length(s) do
case ord(s) of
0..31: //控制字符
48..57: //数字
else
//其它字符
end;
 
48..57: //数字 [red]这个是正确的[/red]0..31 //控制字符 这个是错误的,

我输入英文字符都不能判断到"字符"
汉字是双字节的更判断不出来了,请再指教,谢谢
 
1.第一个问题表达不清楚﹔
2.
//判断字符是否为双字节类型
function IsSingleByteType(S : String) : Boolean;
var i: integer;
begin
result:= False;
for i:= 0 to Length(S)-1 do
if (ByteType(S,i) <> mbSingleByte) then
//if chr(s)>127
begin
result:= True;//含有汉字字符或其它双字节字符
break;
end;
end;
注意﹕全角输入的都是双字节
 
need :
uses Sysutils;
 
您的解答正确,不过我试了一下,有些问题

如果我在edit中输入的第一个字不是双字节字母或者数字,那么可以控制,并不让用户继续,但是
如果在edit中输入的第一个字符是汉字,那么后面随便输入什么都不会提示,我怎么都无法控制

第一个问题是我写了个取汉字的拼音首字母的函数,可以取汉字拼音,但是客户要求<office指南>这本
书他只要取"指南"的首字母,而不要"office"的拼音,而且不管书名如何长,只要取到前5个首字母就行
了,不过这个没有什么问题,我可以限制长度,就是不知道如何区别"office"和"指南"

请再指教,谢谢!
 
还有谁能回答????
 
第一题:在网上有源码,也有DLL
第二题:不知道
 
to farce:
拜托,说话不要说半拉子,第一,给个连接好吗?
第二,不知道就算了
 
还要高手能回答吗?
 
用判断语句
以AS2码为标准。
行吗?
这个再c语言里是可以的。
[:D]
 
谢谢,不过一个一个判断怎么做?我不是一起判断的,最好给个代码
 
拜托,有人回答吗?
 
用IsDBCSLeadByte可以判断是否中文:
var
S: string;
begin
S := Edit1.Text;
if IsDBCSLeadByte(S[1]) then
//第一个是中文。
同理, 如果IsDBCSLeadByte(S[3])也返回True,第二个也是中文。 see?
end;
 
谢谢,我试试
 
IsDBCSLeadByte是什么函数,我运行错误
 
终于搞定,谢谢xianjun和chenhaobo,milpas

结束问题了。
 
后退
顶部