본문 바로가기

ByteType, mbSingleByte, mbLeadByte 를 활용하여 한글 깨지지 않게 추출하는 법

다음 코드로 Test 해 보세요.

function Copy2(const Src:String; Index, Len :integer ) : String;

var n : integer;

begin

n := Length(Src);

if n <= Len then Len := n;

if not (ByteType(Src, Index) in [mbSingleByte, mbLeadByte]) then inc(index);

if Index + Len - 1 < n then n := Index + Len - 1;

if not (ByteType(Src, n) in [mbSingleByte, mbTrailByte]) then dec(Len);

Result := copy(Src, Index, Len);

end;

예: Copy2('부모님사랑해',1,5);