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

請問是否有函式可以成unicode編碼的文字檔?

尚未結案
qubeley2004
一般會員


發表:52
回覆:71
積分:24
註冊:2004-07-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-23 01:33:30 IP:211.76.xxx.xxx 未訂閱
參考了此篇 http://delphi.ktop.com.tw/topic.php?topic_id=46228 但卻不曉得delphi的語法= =a 請問bcb是否有函式可以存成unicode編碼的文字檔呢?
windblown
中階會員


發表:0
回覆:117
積分:98
註冊:2003-11-14

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-23 14:58:53 IP:61.229.xxx.xxx 未訂閱
bool WriteWideString2File(AnsiString filename, WideString& ws)
{
  bool Result = false;
  WideString wf = WideChar(0xFEFF);
  TFileStream* f= new TFileStream(filename, fmCreate);
  try {
    f->Write(wf, 2);
    f->Write(ws.c_bstr(), ws.Length()*sizeof(WideChar));
    Result = true;
  }
  __finally {
    delete f;
  }
  return Result;
}
qubeley2004
一般會員


發表:52
回覆:71
積分:24
註冊:2004-07-13

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-24 01:24:34 IP:211.76.xxx.xxx 未訂閱
引言:
bool WriteWideString2File(AnsiString filename, WideString& ws)
{
  bool Result = false;
  WideString wf = WideChar(0xFEFF);
  TFileStream* f= new TFileStream(filename, fmCreate);
  try {
    f->Write(wf, 2);
    f->Write(ws.c_bstr(), ws.Length()*sizeof(WideChar));
    Result = true;
  }
  __finally {
    delete f;
  }
  return Result;
}
我將您的程式改寫成下列
bool WriteWideString2File(AnsiString filename, WideString& ws)
{ 
  bool Result = false;
  
  WideString wf = (WideString)WideChar(0xFEFF);
  TFileStream* f= new TFileStream(filename, fmCreate);
  try {
    f->Write(wf, 2);
    f->Write(ws.c_bstr(), ws.Length()*sizeof(WideChar));
    Result = true;
  }
  __finally {
    delete f;
  }
  return Result;
}
不過complier卻出現 Warning W8030 Temporary used for parameter 'ws' in call to 'WriteWideString2File(AnsiString,WideString &)' 請問這是什麼原因呢??
zcecil
初階會員


發表:0
回覆:28
積分:45
註冊:2003-06-27

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-24 14:33:02 IP:220.130.xxx.xxx 未訂閱
可以直接用 http://www.tntware.com/delphicontrols/unicode/ BCB跟Delphi都可以 它的 TntStringList 就可以處理widestring了 其它還有很多好用的
windblown
中階會員


發表:0
回覆:117
積分:98
註冊:2003-11-14

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-24 15:24:29 IP:61.229.xxx.xxx 未訂閱
可以提供一下,你是如何呼叫的嗎?    我想有函數的定義可以稍微修改 bool WriteWideString2File(AnsiString filename, WideString ws) WideString ws 少了 &, 不過缺點是多了一個 Temporary WideString    bool WriteWideString2File(AnsiString filename, WideString* ws) 改成 WideString* ws,缺點是程式用的 ws 的地方要改成指標形式, 另外「有點醜」
qubeley2004
一般會員


發表:52
回覆:71
積分:24
註冊:2004-07-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-25 16:40:28 IP:211.76.xxx.xxx 未訂閱
引言: 可以提供一下,你是如何呼叫的嗎? 我想有函數的定義可以稍微修改 bool WriteWideString2File(AnsiString filename, WideString ws) WideString ws 少了 &, 不過缺點是多了一個 Temporary WideString bool WriteWideString2File(AnsiString filename, WideString* ws) 改成 WideString* ws,缺點是程式用的 ws 的地方要改成指標形式, 另外「有點醜」 < face="Verdana, Arial, Helvetica"> 阿阿....我發現我型態弄錯了= = 我是用AnsiStrng 而不是使用 WideString.. 改成WideString就好了~
系統時間:2024-05-12 4:19:57
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!