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;

转载于:https://www.cnblogs.com/pilybird/archive/2007/12/07/986711.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值