用ord(每个字符),如果该值在0-128之间可能是英文,在128-256之间是半个汉字, procedure JudgeChar(AChar: Char); begin if (AChar in ['a'..'z']) or (Char in ['A'..'Z']) then ShowMessage('这是一个字符') else if (ord(AChar) in [128..256]) then ShowMessage('这是一个汉字的ASCII码') else ShowMessage('其他字符'); end;
判断一个字符串变量的值是否含有乱码for i:= 1 to length(yourstring) do begin if (ord(yourstring[i])>256 or ord(yourstring[i])<0)then yourstring:='asdasdasd'; end;楼主是这个意思吗?
sorry 加上 break;for i:= 1 to length(yourstring) do begin if (ord(yourstring[i])>256 or ord(yourstring[i])<0)then begin break; yourstring:='asdasdasd'; end; end;
sorry break加翻了;for i:= 1 to length(yourstring) do begin if (ord(yourstring[i])>256 or ord(yourstring[i])<0)then begin yourstring:='asdasdasd'; break; end; end;哈哈哈哈哈哈哈,不好意思,喝多了
在0-128之间还有一些其他字符
procedure JudgeChar(AChar: Char);
begin
if (AChar in ['a'..'z']) or (Char in ['A'..'Z']) then
ShowMessage('这是一个字符')
else if (ord(AChar) in [128..256]) then
ShowMessage('这是一个汉字的ASCII码')
else
ShowMessage('其他字符');
end;
我的目的是判断一个字符串变量的值是否含有乱码,如果有则把该字符串变量赋为默认值
现在还不知道怎么做? 我猜想winamp中就可能这么做了。
返回值为true为汉字头,false为英文字母
begin
if (ord(yourstring[i])>256 or ord(yourstring[i])<0)then
yourstring:='asdasdasd';
end;楼主是这个意思吗?
begin
if (ord(yourstring[i])>256 or ord(yourstring[i])<0)then
begin
break;
yourstring:='asdasdasd';
end;
end;
begin
if (ord(yourstring[i])>256 or ord(yourstring[i])<0)then
begin
yourstring:='asdasdasd';
break;
end;
end;哈哈哈哈哈哈哈,不好意思,喝多了
回去试试。
刷新| 搜索 | 提问| 未解决 | 已解决 | 精华区 | FAQ | 专题 |