ByteType {mbSingleByte 单字母 mbLeadByte 双字节第一位 mbTrailByte 双字节第二位 }if ByteType(sSendText,128)=mbSingleByte then //字母 if sSendText[128]>='0' and <='9' then if sSendText[128] in ['A'..'Z','a'..'z'] then if ByteType(sSendText,128)=mbLeadByte then//末尾是否为半个汉字
没有说清楚,是内容全部都是数字汉字或者字母,还是内容当中既有数字、字母和汉字! 只能给你一些提示了:1、根据ASCII码数值来进行判断,Ord()函数就可以把字符转换为对应的数值,值33-126为键盘 可使用字符,值127以上的为未知字符,即为汉字。2、利用函数 strtoint(edit1.text)来判断内容是否为数字,如: try int1:=strtoint(edit1.text); except messagebox()//不是数字。3、bytetype(str:string,index:integer)函数,判断字节数 //具体用法可以看帮助! 如:if bytetype(str,index)=mbleadbyte then //汉字 else if bytetype(str,index)=mbsinglebyte then // 字母。具体你自己想想怎么做吧!
function StrToSet(mStr: string): TSysCharSet; var I: Integer; begin Result := []; for I := 1 to Length(mStr) do Include(Result, mStr[I]); end; { StrToSet }procedure TForm1.Button1Click(Sender: TObject); var E: Extended; I: Integer; begin if TryStrToInt(Edit1.Text, I) then ShowMessage('整数') else if TryStrToFloat(Edit1.Text, E) then ShowMessage('浮点数') else if Length(WideString(Edit1.Text)) <> Length(Edit1.Text) then ShowMessage('有汉字') else if StrToSet(Edit1.Text) <= ['a'..'z', 'A'..'Z'] then ShowMessage('全部是字母') else ShowMessage('其他情况'); end;
{mbSingleByte 单字母
mbLeadByte 双字节第一位
mbTrailByte 双字节第二位
}if ByteType(sSendText,128)=mbSingleByte then //字母
if sSendText[128]>='0' and <='9' then
if sSendText[128] in ['A'..'Z','a'..'z'] then
if ByteType(sSendText,128)=mbLeadByte then//末尾是否为半个汉字
只能给你一些提示了:1、根据ASCII码数值来进行判断,Ord()函数就可以把字符转换为对应的数值,值33-126为键盘 可使用字符,值127以上的为未知字符,即为汉字。2、利用函数 strtoint(edit1.text)来判断内容是否为数字,如:
try
int1:=strtoint(edit1.text);
except
messagebox()//不是数字。3、bytetype(str:string,index:integer)函数,判断字节数 //具体用法可以看帮助!
如:if bytetype(str,index)=mbleadbyte then //汉字
else if bytetype(str,index)=mbsinglebyte then // 字母。具体你自己想想怎么做吧!
var
I: Integer;
begin
Result := [];
for I := 1 to Length(mStr) do
Include(Result, mStr[I]);
end; { StrToSet }procedure TForm1.Button1Click(Sender: TObject);
var
E: Extended;
I: Integer;
begin
if TryStrToInt(Edit1.Text, I) then
ShowMessage('整数')
else if TryStrToFloat(Edit1.Text, E) then
ShowMessage('浮点数')
else if Length(WideString(Edit1.Text)) <> Length(Edit1.Text) then
ShowMessage('有汉字')
else if StrToSet(Edit1.Text) <= ['a'..'z', 'A'..'Z'] then
ShowMessage('全部是字母')
else ShowMessage('其他情况');
end;