function GetSubStr(OldStr: string; Start, Len: Integer): string;
//OldStr: 目标字符串
//Start:起始截取位置
//Len:截取长度
//函数返回包括完整汉字的子串
var
i: Integer;
begin
i := Start; //起点
while i > 0 do
begin
if Ord(OldStr) < 128 then
Break; //找到起始的第一个英文字符,下一个应该是连续汉字的第一字节
i := i - 1;
end;
if Start <> i then
if ((Start - i) mod 2) = 0 then //起点是汉字的第二字节
Start := Start + 1; //调整起点
i := Start + Len - 1; //结束点
while i >= Start do
begin
if Ord(OldStr) < 128 then
Break; //找到起始的第一个英文字符,下一个应该是连续汉字的第一字节
i := i - 1;
end;
if ((Start + Len - i) mod 2) = 0 then //结束点是汉字的第二字节
Len := Len + 1; //调整结束点