유니코드 텍스트가 저장되어있는 배열의 내용을 한 줄씩
저장하여 하나의 유니코드 텍스트 파일을 만들고자 합니다만...
아래의 코드대로 하면, 유니코드로 저장되지 않고... 일반 텍스트(ANSI)로 저장되어
버립니다. 아무래도 WriteLn 이라는 명령어가 Unicode 용이 아닌듯한데...
어떻게하면되는지 조언을 주시면 고맙겠습니다. 참고로 저는 TnTunicode component 를
사용중인데.. 이곳에서 지원하는 명령어가 있는지요??
procedure TFormMain.SaveUnicodeText();
var
ATextFile : System.text;
i: integer;
begin
System.Assign(ATextFile, 'C://UnicodeText.txt' );
Rewrite(ATextFile);
for i := 1 to 100 do begin
writeLn (ATextFile,UnicodeTxtArray[i,1]);
end;
System.Close(ATextFile);
end;
////////
<!--CodeS-->
Procedure SaveStringsAsUnicode( const thefilename:String;
theStringlist: String );
Var
WS: WideString;
fs: TFileStream;
byteorder_marker: Word;
Begin
WS:= theStringlist;
fs:= Tfilestream.create( thefilename, fmCreate );
try
byteorder_marker := $FEFF;
fs.WriteBUffer( byteorder_marker, sizeof(byteorder_marker));
fs.WriteBuffer( WS[1], Length(WS)*Sizeof( WS[1] ));
finally
fs.free
end;
End;
<!--CodeE-->