RichEdit元件LoadFromFile所產生的問題? |
尚未結案
|
g6101
高階會員 發表:22 回覆:129 積分:110 註冊:2002-06-15 發送簡訊給我 |
大家好:
小弟在使用RichEdit元件的巨集(LoadFromFile/SaveToFile)載入/存入檔案時,檔名或路徑若使用中文名稱常引發例外錯誤,不知如何解決,還請大家不吝賜教,謝謝! 底下為BCB所返回的錯誤原因,其所用語法為Delphi,實在是看不懂,請大家幫忙看看如何?
<...\vcl\Classes.pas>
constructor TFileStream.Create(const FileName: string; Mode: Word; Rights: Cardinal);
begin
if Mode = fmCreate then
begin
inherited Create(FileCreate(FileName, Rights));
if FHandle < 0 then
raise EFCreateError.CreateResFmt(@SFCreateError, [FileName]);
end
else
begin
inherited Create(FileOpen(FileName, Mode));
if FHandle < 0 then
raise EFOpenError.CreateResFmt(@SFOpenError, [FileName]);
end;
end; ps.我的系統為WIN2K BCB6.0 SP4 ◎天長地久有時盡,追求知識無絕期!
|
nlj859
資深會員 發表:139 回覆:375 積分:322 註冊:2004-03-20 發送簡訊給我 |
Hello g6101, 請參考使用TRichEdit去LoadFromFile/SaveToFile的用法.
void __fastcall TForm1::btnLoadClick(TObject *Sender) { if (OpenDialog1->Execute()) { if (FileExists(OpenDialog1->FileName)) { RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName); } } } //--------------------------------------------------------------------------- void __fastcall TForm1::btnSaveClick(TObject *Sender) { if (SaveDialog1->Execute()) { if (!FileExists(SaveDialog1->FileName)) { RichEdit1->Lines->SaveToFile(SaveDialog1->FileName); } } } |
pwipwi
版主 發表:68 回覆:629 積分:349 註冊:2004-04-08 發送簡訊給我 |
g6101你好:
vcl在檔案處理方面還是用CreateFileA,如果檔名是簡體中文可能會造成無法開新檔案。這時可以試把儲存的過程改成用WideString和CreateFilwW。看看能不能解決你的問題,參考下面的Code
//--------------------------------------------------------------------------- int FileCreateW(const WideString& FileName) { return (int)CreateFileW(FileName.c_bstr(),GENERIC_READ|GENERIC_WRITE, 0, 0, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, 0); } //--------------------------------------------------------------------------- void SaveToFileW(const WideString& FileName,TStrings* Lines) { TStream* Stream = new THandleStream(FileCreateW(FileName)); try { Lines->SaveToStream(Stream); } __finally { delete Stream; } } void __fastcall TForm1::Button1Click(TObject *Sender) { SaveToFileW("c:\\檔案.txt",RichEdit1->Lines); } //-- |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |