Delphi 处理在字符串截取中避免出现半个汉字

2007年12月7日//..处理中英文混杂左截取

function LeftStrEx(const AText: string; ACount: Integer): string;

var

I,ChrLen,

BreakLen:Integer;

IsMBCS:Boolean;

begin

I := 1;

BreakLen := 0;

IsMBCS := False;

if Length(AText)>ACount then

begin

while I<=ACount do

begin

if AText[I] in LeadBytes then

begin

ChrLen := CharLength(AText,I)-1;

I:= I + ChrLen;

//说明AText[ACount]不是一个中文字符的末尾

if I>ACount then

begin

IsMBCS := True;

BreakLen := I - ChrLen - 1;

Break;

end;

end;

//..

Inc(I);

end;

end;

//AText[ACount]不是半个中文字符

if not IsMBCS then

Result := LeftStr(AText,ACount)

else

Result := LeftStr(AText,BreakLen);

end;