Q&A

  • 유니코드를 보이게 하려면....
지금 emf 파일에서 텍스트를 추출하는 프로그램을 만들고 있는데요...
문제는 emf 안에 test가 유니코드로 되어 있네요...
그것을 보이게 만들어야 하는데....
ansi -> 유니 코드로는 쉬운데...
이건 문제네요...

참고 하시라고...emf 파일 하나 첨부 했습니다...
흑... 실력이 딸려서.,..
좀 도와 주십시요...
부탁 드립니다...
다음은 소스입니다..


procedure TForm1.Button1Click(Sender: TObject);
var
i : integer;
emf_file : Tfilestream;
emfh : TEnhMetaHeader;
emfr : TEnhMetaRecord;
aaa : array [0..99] of WIDEchar;
ccc : array [0..4090] of char;
ddd : widestring;
aaa11 : TEMREXTTEXTOUT;
kkk : TEMRTEXT;
al : tstringlist;
begin
if od1.Execute then
  begin
  al := TStringList.Create;
  emf_file := Tfilestream.Create(od1.FileName,fmOpenRead);
  emf_file.Position:=0;
  emf_file.Read(emfh,sizeof(TEnhMetaHeader));
  emf_file.Position := emfh.offDescription;
  emf_file.Read(aaa,(emfh.nDescription *2) );
  emf_file.Read(emfr,sizeof(TEnhMetaRecord));
  emf_file.Read(ccc,emfr.nsize - 12);
  for i:=0 to emfh.nRecords-1 do
  begin
  emf_file.Read(emfr,sizeof(TEnhMetaRecord));

  begin
  if emfr.itype = EMR_EXTTEXTOUTW then
  begin
  emf_file.Position := emf_file.Position -12;
  emf_file.Read(aaa11,sizeof(TEMREXTTEXTOUT));
  kkk:=aaa11.emrtext;
  emf_file.Read(ccc,emfr.nsize - (sizeof(TEMREXTTEXTOUT)));
  // 여기서 넘어온 값 CCC 가 유니코드...
  //  여기서 부터가 문제.....
{
  ddd:=ccc;
  showmessage(ddd);
  }
//  TntMemo1.Lines.Add(ccc);
  end else
  emf_file.Read(ccc,emfr.nsize - 12);
  end;
  end;
  emf_file.Free;

  end;
end;
0  COMMENTS