判断是否输入的是中文时遇到的问题?
我用以下代码判断str中是否存在非中文的字符,在使用过程中基本没有问题,但当我输入的是“丢”字时,程序判断ord(str[2])=71。我实在不明白是为什么?难道我以下判断中文的方法有错??请高手指教。
begin
flag :=true;
str:=trim(dbedit1.text);
for i:=1 to length(str) do
begin
if (ord(str[i])>=33) and (ord(str[i])<=126) then
begin
application.MessageBox('你输入的非法字符!!','提示',MB_ICONINFORMATION + MB_OK);
flag:=false;
break;
end
end;
我用以下代码判断str中是否存在非中文的字符,在使用过程中基本没有问题,但当我输入的是“丢”字时,程序判断ord(str[2])=71。我实在不明白是为什么?难道我以下判断中文的方法有错??请高手指教。
begin
flag :=true;
str:=trim(dbedit1.text);
for i:=1 to length(str) do
begin
if (ord(str[i])>=33) and (ord(str[i])<=126) then
begin
application.MessageBox('你输入的非法字符!!','提示',MB_ICONINFORMATION + MB_OK);
flag:=false;
break;
end
end;
解决方案 »
- 如何把MDB数据库中的信息显示到listView或者listBosx中
- 如何用鼠标右键选中TTreeView控件中的节点?
- 谁能告诉我一下MultiByteToWideChar这个函数怎么用,在线等,谢了。
- 请问如何在delphi中调用access中的模块和宏?
- 从表中取数据的时候如何在取得第一条和最后一条的数据
- 如何向指定窗口的按钮发送WM_COMMAND消息???
- 帮我看看着段代码,,,,,,,
- 寻找在上海有 justep x3平台的开发商吗?
- 打开form的名称怎么新加入MainMenu
- delphi7中如何为一个字段设计多选框?
- 散,散,散,狂散
- DELPHI中使用那些函数搜索目录中的文件啊?能把这些函数列出来吗?以及给我一个小示例就够了!
当我让str=一个中文字,如“丙”或“丢”时,length(str)都等于2。
于是用(ord(str[i])>=127) 判断中文。结果如下:
“丙”字的ord(str[1])=177,ord(str[2])=251。
可到了“丢”字,问题就出现了:
ord(str[1])=129
ord(str[2])=71。//这里为什么会出现71!!!!!他不是应该比126大的数么???
那我要判断所输入的是不是中文,应该怎么办呀!!!
wis : WideString;
sub : Integer; //汉字的个数
Begin
ans := '盗版delphi';
wis := WideString( ans );
sub := Length( ans ) - Length( wis );
End;