寫入TMemIniFile 資料沒有及時更新 |
答題得分者是:brook
|
small7011
一般會員 發表:19 回覆:34 積分:10 註冊:2007-07-24 發送簡訊給我 |
假設我原始INI設 UP =100 LO=10,而我要修改INI的數值,假設修改為UP =50 LO=20,寫入之後INI檔案裡面確實也有更改成UP =50 LO=20,但是為什麼我DaSp->UP和DaSp->LO讀到的還是原先數值 UP =100 LO=10
[code cpp] //--------------------------------------------------------------------------- void __fastcall TForm1::ButestClick(TObject *Sender) { if(StrToInt(EdtM->Text) <=DaSp->UP && StrToInt(EdtM->Text) >= DaSp->LO) lblShow->Caption="符合"; else lblShow->Caption="不符合"; } //--------------------------------------------------------------------------- void __fastcall TForm1::BtnModifyClick(TObject *Sender) { int iUP,iLO; TMemIniFile *iniSpec = new TMemIniFile(ChangeFileExt( Application->ExeName, ".INI" )); iUP=StrToInt(EdtUP->Text); iLO=StrToInt(EdtLO->Text); //-------------spec----------------------// iniSpec->WriteInteger("Spec","UP",iUP); iniSpec->WriteInteger("Spec","LO",iLO); iniSpec->UpdateFile(); delete iniSpec; iniSpec=NULL; } //--------------------------------------------------------------------------- 下面是寫在DataModule底下 void __fastcall TDaSp::Readini(bool bCreate) { TMemIniFile *iniSpec = new TMemIniFile(ChangeFileExt( Application->ExeName, ".INI" )); if(bCreate==true) { //-------------spec----------------------// UP=iniSpec->ReadInteger("Spec","UP",-1); LO=iniSpec->ReadInteger("Spec","LO",-1); } delete iniSpec; iniSpec=NULL; } [/code]
------
lee 編輯記錄
small7011 重新編輯於 2008-04-24 09:29:38, 註解 無‧
|
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
|
small7011
一般會員 發表:19 回覆:34 積分:10 註冊:2007-07-24 發送簡訊給我 |
我還是有同樣的問題,我在詳細說明一次,ini假設原始是UP=100 LO=10
step1:我在EdtM輸入一個在上下限數字,讓程式去判斷是否符合. step2:假設我要修改ini UP=50 LO=20,我去看INI檔確實有改變成 UP=50 LO=20 step3:但是這時候我ButestClick函數裡頭DaSp->UP和DaSp->LO所獨到的數值還是舊的UP=100 LO=10 step4:然而我重新Run過程式之後 那數值則會修改成UP=50 LO=20 請教大大有什麼方法可以在不用重新Run程式變可即使更新DaSp->UP和DaSp->LO所讀到的數值
------
lee |
brook
資深會員 發表:57 回覆:323 積分:371 註冊:2002-07-12 發送簡訊給我 |
我用bcb5確實可以更新不需重啓程式.
[code cpp] 請在此區域輸入程式碼 void __fastcall TForm1::Button1Click(TObject *Sender) { TMemIniFile *iniSpec = new TMemIniFile(ChangeFileExt( Application->ExeName, ".INI" )); int iUP=StrToInt(EdtUP->Text); //-------------spec----------------------// iniSpec->WriteInteger("Spec","UP",iUP); iniSpec->UpdateFile(); delete iniSpec; } void __fastcall TForm1::Button2Click(TObject *Sender) { TMemIniFile *iniSpec = new TMemIniFile(ChangeFileExt( Application->ExeName, ".INI" )); int UP=iniSpec->ReadInteger("Spec","UP",-1); delete iniSpec; Edit2->Text = UP; } //--------------------------------------------------------------------------- [/code] |
small7011
一般會員 發表:19 回覆:34 積分:10 註冊:2007-07-24 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |