1. 2011. 4. 19. 02:25 Tutorials/IDE]Delphi 7.2


델파이는 어느정도 자동화가 되어 궂이 변환 함수, 병합 함수 없이 바로 문자열을 처리 할 수 있습니다.
example)
var pCharBuffer:PAnsiChar; pWideCharBuffer:PWideChar; StringBuffer:WideString;
pCharBuffer := PChar('문자열');
pWideCharBuffer := PWideChar(WideString('문자열'));//유니코드 명시 필요
StringBuffer := String(pCharBuffer);//String <=> WideString 자동 변환

문자열들을 텍스트로 뽑아서 메모장으로 확인 하게 됩니다.


큰 파일이 아님으로,
 간단한 메모리 스트림을 생성하여 파일을 생성 하겠습니다.

Unicode 버튼
procedure saveUTF16LE(fileName:String;var code:WideString);
var fs: TMemoryStream;begin
  fs := TMemoryStream.Create;
  if Assigned( fs ) then begin
    fs.Write( #$FF#$FE, 2 );
    fs.Write( code[1], Length(Code)*2 );
    fs.SaveToFile(fileName);
  end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var src:WideString;//Unicode
begin
  src := '문자열';
  saveUTF16LE( 'text.txt', src );
end;

Ansi 버튼
procedure saveAnsi(fileName:String;var code:String);
var fs: TMemoryStream;begin
  fs := TMemoryStream.Create;
  if Assigned( fs ) then begin
    fs.Write( code[1], Length(Code) );
    fs.SaveToFile(fileName);
  end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var src:String;//Ansi
begin
  src := '문자열';
  saveAnsi( 'text.txt', src );
end;

UTF-8 버튼
procedure saveUTF8(fileName:String;var code:UTF8String);
var fs: TMemoryStream;begin
  fs := TMemoryStream.Create;
  if Assigned( fs ) then begin
    fs.Write( #$EF#$BB#$BF, 3 );
    fs.Write( code[1], Length(Code) );
    fs.SaveToFile(fileName);
  end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var src:UTF8String;//Unicode
begin
  src := UTF8Encode( '문자열' );//UTF-16LE To UTF-8
  saveUTF8( 'text.txt', src );
end;

아래 문자열이 보여지면 변환에 성공 한것 입니다.

Posted by Nightly Luna
,
® © Tanny Tales
/ rss