3 Tier구조의 데이터베이스 프로그래밍 도중 Remobject의 DataType을 WideMemo형으로 해서
WideString 데이터를 저장하게 되면, 가끔 실제 데이터 이외에 쓰레기 데이터가 들어가는 경우가 있다. (유니코드 데이터)
원본 데이터 이외에 문자열 끝에 쓰레기 데이터가 들어가게 되어, 델파이에서 문자열 연산시 오류를 발생하게 되는데, 이때 문자열의 쓰레기 데이터를 잘라내고 원본 데이터만 남겨놓기 위하여 아래와 같이 함수를 만들었다.
Length를 이용하여, 실제 델파이에서 인지하는 문자열만큼의 데이터만을 추출해내는 함수.
Function GabarageRemoveString(In_String : String) : String;
Var
pBody : PChar;
iLen : Integer;
Begin
Result := '';
GetMem(PBody, Length(In_String)+1);
Try
ilen := (Length(In_String));
StrPCopy(pbody, copy(In_String, 1, iLen));
Finally
Result := pBody; (추가)
FreeMem(PBody);
End;
Result := pBody;
End;
후배 윤모군의 지적으로 2007년 10월 29일 수정함.
테스트도 안해보고 올렸더만 -_-;;;;;; FreeMem 한후에 Result에 값을 넘기고 있어서,
FreeMem전에 Result를 넘기도록 변경.