한글(2Byte)문자열 깨지지 않게 자르기
WideString 을 사용하자
한글을 자를때 깨진 1Byte 문자를 WideString 변수에 넣었다가
String 변수로 되받아서 Trim 처리를 하면 깨진 문자가 정리되어 이걸 활용
이 예제는 C++Builder 에서도 동일하게 적용
procedure TForm1.Button1Click(Sender: TObject);
var
TextString, TextTrim: String;
TempWide: WideString;
LenthCnt: Integer;
begin
TextString := Trim(Edit1.Text); //원본문자열
LenthCnt := StrToIntDef(Edit2.Text,7); //문자열 자를 위치
if ( Length(TextString) > LenthCnt) then
begin
TempWide := Copy(TextString,1,LenthCnt); //원본문자열을 잘라서 WideString 변수에 담는다.
TextTrim := TempWide; //WideString 에서 String 변수로 되받는다.
Edit3.Text := Trim(TextTrim); //Trim 처리를 하여 깨진 문자를 없앤다.
LenthCnt := Length(Edit3.Text); //나머지 문자열 처리를 위해 잘라진 문자열의 길이를 알아본다.
Delete(TextString,1,LenthCnt); //원본문자열에서 잘리진 문자열만큼 잘라버린다.
TempWide := TextString; //나머지 원본문자열을 WideString 변수에 담는다.
TextTrim := TempWide; //WideString 에서 String 변수로 되받는다.
Edit4.Text := Trim(TextTrim); //혹시 있을 문제를 업애기 위해 Trim 처리를 한다.
end
else
begin
Edit3.Text := TextString;
Edit4.Text := '';
end;
end;
'Delphi Tip > 문자' 카테고리의 다른 글
델파이 2진수 변환(Binaryconversion) (0) | 2024.06.13 |
---|---|
한글 초/중/종성 알아내기 (0) | 2024.02.15 |
델파이 UTF-8 (0) | 2023.11.15 |
Case문으로 문자 비교하기 (0) | 2023.11.08 |
String 을 PAnsiChar 변환 (0) | 2021.10.14 |
댓글