知/Delphi

한글 안깨지게 자르기

채수욱 2008. 8. 23. 01:46
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' 카테고리의 다른 글

2D 게임프로그램 참고자료  (0) 2009.08.29
파일 정보 알아내기  (0) 2008.08.23
RS-232, 485의 구분 및 통신코드  (0) 2008.08.14
GRF 파일 저장 문제  (0) 2008.07.25
[바코드] EAN-13 체크 디지트 구하는 루틴  (0) 2008.07.18