본문 바로가기
Delphi Tip/문자

한글(2Byte)문자열 깨지지 않게 자르기

by MonoSoft 2024. 7. 8.
728x90
반응형

한글(2Byte)문자열 깨지지 않게 자르기 

 

728x90

 

 

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;

 

728x90
반응형

'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

댓글