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

請問如何存檔呢

答題得分者是:cashyy
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-08 15:05:33 IP:218.162.xxx.xxx 未訂閱
我寫的是 if (SaveDialog1->Execute()) { RichEdit1->Lines->SaveToFile(SaveDialog1->FileName); } 但是這不就等於是另存新檔嗎? 我要的是直接覆蓋開啟的檔案,如果沒有存檔他就跳出另存新檔的對話盒 像一般的軟體一樣,存檔除了用SaveDialog1還有別的方式嗎? 謝謝^^ 誰說女生不會寫程式,只是寫的比較爛..><
wyndog
資深會員


發表:7
回覆:362
積分:348
註冊:2004-10-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-08 17:23:01 IP:60.248.xxx.xxx 未訂閱
// 先宣告一個整體變數叫 FileName 來儲存檔名
AnsiString FileName;    void __fastcall TForm1::Button1Click(TObject *Sender)
{
    // 如果檔名是空的,就是還沒存過檔,所以就要叫 SaveDialog 出來
    if(FileName.IsEmpty()) {
        if(SaveDialog1->Execute())
            FileName = SaveDialog1->FileName;
    }        // 如果 FileName 有值,就直接存檔
    if(! FileName.IsEmpty())
        RichEdit1->Lines->SaveToFile(FileName);
}
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-07-08 18:56:16 IP:218.162.xxx.xxx 未訂閱
看起來程式好像沒有問題    不過他還是跳出另存新檔的對話框 是這裡的問題嗎?if(! FileName.IsEmpty()) 它無法去判斷FileName有沒有值 !和IsEmpty我不懂所以也無法修改 還是很謝謝你 我再試看看^^ 誰說女生不會寫程式,只是寫的比較爛..><
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-07-08 20:31:38 IP:59.104.xxx.xxx 未訂閱
您好! 插花一下!
#include 
#pragma hdrstop    #include "Unit1.h"
AnsiString FileName;  //全域變數
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  /* 開檔 */
  if(OpenDialog1->Execute())
    RichEdit1->Lines->LoadFromFile(OpenDialog1->FileName);
  FileName = OpenDialog1->FileName;     //FileName等於開啟的檔案名稱    }
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
  /* 存檔 */
  if(!FileName.IsEmpty())        //當檔名不是空的,就直接覆蓋開啟的檔案
    RichEdit1->Lines->SaveToFile(OpenDialog1->FileName);
  else
    if(SaveDialog1->Execute())   //當檔名是空的,就出現存檔的視窗
      RichEdit1->Lines->SaveToFile(SaveDialog1->FileName);
}
IsEmpty()是代表"空"的意思,就像NULL一樣。 if(FileName.IsEmpty()) //這句是說:檔案名稱等於空的! if(!FileName.IsEmpty()) //這句是說:檔案名稱等於空的! 發表人 - cashyy 於 2005/07/08 20:37:03 發表人 - cashyy 於 2005/07/08 20:38:03
yachu721
初階會員


發表:51
回覆:98
積分:44
註冊:2003-07-13

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-07-08 20:36:45 IP:59.104.xxx.xxx 未訂閱
reptile大大的意思 應該是用IsEmpty來判斷FileName是否為空字串 如果是就存檔並將SaveDialog1->FileName丟入FileName    如果不是就直接存檔    不過宣告AnsiString FileName; 要丟到程式開頭那唷    如    //---------------------------------------------------------------------------    #include  #pragma hdrstop #include "Unit1.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; AnsiString FileName; . . . . . . . .
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-07-08 20:38:49 IP:218.162.xxx.xxx 未訂閱
謝謝 我正在寫阿 宣告的部分我知道^^ 只是宣告成這樣[red]AnsiString FileName;[red] //全域變數 我就不曉得了 誰說女生不會寫程式,只是寫的比較爛..><
cashyy
高階會員


發表:117
回覆:322
積分:212
註冊:2004-04-30

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-07-08 20:41:42 IP:59.104.xxx.xxx 未訂閱
引言: 謝謝 我正在寫阿 宣告的部分我知道^^ 只是宣告成這樣[red]AnsiString FileName;[red] //全域變數 我就不曉得了 誰說女生不會寫程式,只是寫的比較爛..><
沒錯啦!是宣告成AnsiString FileName啦! 是小弟在後面的[red]少打了/啦!應該是/red
Miki-lion
中階會員


發表:90
回覆:180
積分:54
註冊:2005-04-24

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-07-08 20:45:51 IP:218.162.xxx.xxx 未訂閱
我弄出來了~~謝謝大家~~好開心喔~^^ 誰說女生不會寫程式,只是寫的比較爛..><
系統時間:2024-05-18 21:58:20
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!