flag := false;
for i := 1 to ShowLen do begin
if (ord(ShowStr[i]) > 127) and (not flag) then
flag := true
else
flag := false;
end;
if flag then //한글의 시작부분이면
ReturnStr := Copy(ShowStr, 1, ShowLen - 1) //한글1자(2바이트) 사이를 자르지 않는다
else
ReturnStr := Copy(ShowStr, 1, ShowLen);
function HanCopy(sFrom : string; iSPoint : integer; iCutLength : integer;var NextPoint : integer):string;
var
sResult : string;
i : integer;
begin
if sFrom <> '' then begin
i := iSPoint;
while (i <= iSPoint + iCutLength - 1) and (i <= Length(sFrom)) do begin
if ByteType(sFrom, i) = mbLeadByte then begin
sResult := sResult + copy(sFrom, i, 2);
i := i + 2;
end else begin
sResult := sResult + copy(sFrom, i, 1);
i := i + 1;
end;
end;
NextPoint := i;
end else begin
NextPoint := -1;
end;
참고하세요.
flag := false;
for i := 1 to ShowLen do begin
if (ord(ShowStr[i]) > 127) and (not flag) then
flag := true
else
flag := false;
end;
if flag then //한글의 시작부분이면
ReturnStr := Copy(ShowStr, 1, ShowLen - 1) //한글1자(2바이트) 사이를 자르지 않는다
else
ReturnStr := Copy(ShowStr, 1, ShowLen);