BDS2006에 기본으로 들어 있는 TWideStrings 보면, LoadFromFile이나 LoadFromStream 할 때 문제가 있어서, 원치 않는 정보가 마지막 라인에 딸려서 들어옵니다.
아래 부분이 잘못되어 있고 이 부분을 고치면 된다는 것은 알겠는데.. 이걸 WideStrings.pas을 고치기만 한다고 적용되게 쓸 수 있는 것은 아닌 것 같은데 어떻게 해야 수정된걸 늘 적용되게 사용할 수 있는지 아시는분 계신가요? 소스는 BDS경로\source\win32\rtl\common 안에 있는겁니다..
procedure TWideStrings.LoadFromStream(Stream: TStream); var Size: Integer; S: WideString; begin BeginUpdate; try Size := Stream.Size - Stream.Position; SetString(S, nil, Size); Stream.Read(Pointer(S)^, Size); SetTextStr(S); finally EndUpdate; end; end;
빨간 부분을 SetString(S, nil, Size div SizeOf(WideChar));로 고쳐야 합니다.
|