線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1871
推到 Plurk!
推到 Facebook!

Delphi2009中TTreeview的SaveToFile少寫BOM

 
slimshsieh
一般會員


發表:1
回覆:2
積分:0
註冊:2003-11-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2009-02-10 14:29:38 IP:125.229.xxx.xxx 未訂閱
無聊逛網看到大陸人寫的網誌說到 Delphi2009 中 TTreeview 的 SaveToFile 不支持中文
http://blog.sina.com.cn/s/blog_571df3c40100bvra.html#cmt_1012597
我不太相信, 所以就把原始碼翻出來查原因
使用 SaveToFile 時, 存檔的編碼本來就是 Unicode, 但是就是少寫 BOM 而已
所以若 TTreeview Items 內含中文, 可以用下面的方法來存檔
方法很簡單, 只是先寫 BOM, 接著將 TTreeview 使用 SavetoStream 到 FileStream 中

[code delphi]
var
FileStream :TFileStream;
begin
FileStream :=TFileStream.Create('F:\3.txt', fmCreate);
FileStream.WriteBuffer(TEncoding.Unicode.GetPreamble[0], 2);
TreeView1.SaveToStream(FileStream);
FileStream.Free;
end;
[/code]

讀回內容只要用 LoadFromFile, 也就是原來的方式即可

[code delphi]
TreeView1.Items.Clear;
TreeView1.LoadFromFile('F:\3.txt');
[/code]
編輯記錄
slimshsieh 重新編輯於 2009-02-10 14:30:28, 註解 無‧
slimshsieh 重新編輯於 2009-02-10 16:46:35, 註解 無‧
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#2 引用回覆 回覆 發表時間:2009-02-10 14:41:51 IP:118.169.xxx.xxx 訂閱
感謝分享 ^_^
系統時間:2024-11-23 5:06:06
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!