参考 : function GetHz0(s:string):string; var hz:string;i:integer; begin hz:=''; for i:=1 to length(s) do begin if ByteType(s,i) = mbSingleByte then //µ¥×Ö½Ú begin if trim(hz) = '' then begin hz := s[i]+ #13#10; end else begin if i = Length(s) then begin hz := hz + s[i]; end else begin hz := hz + s[i]+ #13#10; // ' ';// end; end; end else if ByteType(s,i) = mbLeadByte then //Ë«×ֽڵĵÚÒ»¸ö×Ö½Ú begin if trim(hz) = '' then begin hz := s[i]; end else begin hz := hz + s[i]; end; end else if ByteType(s,i) = mbTrailByte then //Ë«×ֽڵĵڶþ¸ö×Ö½Ú begin if trim(hz) = '' then begin hz := s[i]+ #13#10; //ËäȻʵ¼ÊÖв»¿ÉÄÜÓÐÕâÖÖÇé¿ö end else begin if i = Length(s) then begin hz := hz + s[i]; end else begin hz := hz + s[i]+ #13#10; // ' ';// end; end; end; end; GetHz0:=hz; end;
function GetHz0(s:string):string;
var hz:string;i:integer;
begin
hz:='';
for i:=1 to length(s) do
begin
if ByteType(s,i) = mbSingleByte then //µ¥×Ö½Ú
begin
if trim(hz) = '' then
begin
hz := s[i]+ #13#10;
end
else
begin
if i = Length(s) then
begin
hz := hz + s[i];
end
else
begin
hz := hz + s[i]+ #13#10; // ' ';//
end;
end;
end
else if ByteType(s,i) = mbLeadByte then //Ë«×ֽڵĵÚÒ»¸ö×Ö½Ú
begin
if trim(hz) = '' then
begin
hz := s[i];
end
else
begin
hz := hz + s[i];
end;
end
else if ByteType(s,i) = mbTrailByte then //Ë«×ֽڵĵڶþ¸ö×Ö½Ú
begin
if trim(hz) = '' then
begin
hz := s[i]+ #13#10; //ËäȻʵ¼ÊÖв»¿ÉÄÜÓÐÕâÖÖÇé¿ö
end
else
begin
if i = Length(s) then
begin
hz := hz + s[i];
end
else
begin
hz := hz + s[i]+ #13#10; // ' ';//
end;
end;
end;
end;
GetHz0:=hz;
end;
看他的每一个字符是否小于Chr($A1)
是的话就是半角,字母的个数就得出来啦!至于宽字符,你按照Eastunfail(恶鱼杀手)的试试看,也许可以!