可以做ini檔欄位到.cpp檔的變數中嗎? |
答題得分者是:RaynorPao
|
anderson8585
一般會員 發表:10 回覆:13 積分:4 註冊:2007-08-27 發送簡訊給我 |
|
RaynorPao
版主 發表:139 回覆:3622 積分:7025 註冊:2002-08-12 發送簡訊給我 |
請參考以下的範例程式碼,自行修改
[code cpp] void __fastcall TForm1::Button3Click(TObject *Sender) { TIniFile *iniFile=new TIniFile(ExtractFilePath(Application->ExeName) "IniFile3.ini"); TStringList *slValues=new TStringList; int i=0; while(true) { AnsiString szValue=iniFile->ReadString("Number", "ID" IntToStr(i 1), "Nonce"); if(szValue=="Nonce") break; slValues->Add(szValue); i ; } // 以下這段程式碼只是用來確認資料(可不用) for(int i=0; i { ShowMessage(slValues->Strings[i]); } // ...對資料做運算... delete slValues; delete iniFile; } [/code]
------
-- 若您已經得到滿意的答覆,請適時結案!! -- -- 欲知前世因,今生受者是;欲知來世果,今生做者是 -- -- 一切有為法,如夢幻泡影,如露亦如電,應作如是觀 -- |
anderson8585
一般會員 發表:10 回覆:13 積分:4 註冊:2007-08-27 發送簡訊給我 |
1.目前我還在試 有什麼辦法取得[Number]中 共有3筆資料嗎?
2.若我有2個欄位 ini檔 [Class] Number08 = a123456 Number02 = b556666 [Number08] ID8=a123456-1 ID4=a123456-6 ID9=a123456-4 [Number02] ID7=b556666-4 ID4=b556666-3 ID2=b556666-5 以上如果說我要先取得[class]Number08=a123456 再跑去取[Number08]中依序的3個值要怎麼寫 不知道讀ini檔限制很多 也不大清楚ini檔中bcb的指令運用 以上有辦法這樣取得嗎? 我再寫看看 >"<~ ===================引 用 anderson8585 文 章=================== ini檔 [Number] ID1 = 0003 ID2 = 0005 ID3 = 0020 可以依序讀進.cpp中嗎? 我們通常是使用 String a[0] = MyIni->ReadString(Number,ID1,0003); String a[1] = MyIni->ReadString(Number,ID2,0005); String a[2] = MyIni->ReadString(Number,ID3,0020); 如果不這樣做的話 還有什麼方法 因為考慮到資料量大的問題 |
wolfling
初階會員 發表:5 回覆:20 積分:25 註冊:2007-10-05 發送簡訊給我 |
照上面的方法 先用StringList 紀錄所有Section 依你的範例class number08 number02
取得class的data時 依序比較 一樣的話 在ReadString(data,"ID" IntToStr(i 1), "Nonce") (請引用上面的方法) 這樣應該可以 ------------------------------- [Class] Number08 = a123456 Number02 = b556666 [Number08] ID8=a123456-1 ID4=a123456-6 ID9=a123456-4 [Number02] ID7=b556666-4 ID4=b556666-3 ID2=b556666-5
------
work hard bring success |
anderson8585
一般會員 發表:10 回覆:13 積分:4 註冊:2007-08-27 發送簡訊給我 |
|
wolfling
初階會員 發表:5 回覆:20 積分:25 註冊:2007-10-05 發送簡訊給我 |
是不是有方法我不是很確定
不過沒有方法的情形下 你可以讀取[Number]到下一個[Number]間有多少非空字元的資料 也是一個方法 ===================引 用 anderson8585 文 章=================== 那有什麼辦法取得[Number]中 共有3筆資料嗎? 怎麼去count算出來 顯示Number=3
------
work hard bring success |
anderson8585
一般會員 發表:10 回覆:13 積分:4 註冊:2007-08-27 發送簡訊給我 |
|
anderson8585
一般會員 發表:10 回覆:13 積分:4 註冊:2007-08-27 發送簡訊給我 |
|
wolfling
初階會員 發表:5 回覆:20 積分:25 註冊:2007-10-05 發送簡訊給我 |
===================引 用 anderson8585 文 章=================== 我有試了一下 但是是顯示ini所有非空白筆數 TStringList *L = new TStringList(); L->LoadFromFile() [code cpp] //start m int count=0; bool start = false; for(int i=0 ;i if(L->Strings[i]=="[number]") { start = true; for(int j=i 1;j< L->Count ;j ){ if(L->Strings[j]!="[number] " || L->String[j] != "") start ; else break; } } } ShowMessage(count); // //End m [/code] // ShowMessage(L->Count); delete L; 那您說的[number]到下一個[number]非空白的筆數 該怎麼寫 因為我對讀ini的command還不熟 正在慢慢吸收 看範例中學習 我覺得 如果你在ini檔裡面多下點功夫 程式就不會那麼麻煩了 你可以看看ini應該如何去編排 會比較好 是我的話 不會弄得那麼麻煩..太累人了
------
work hard bring success |
daldal
高階會員 發表:6 回覆:102 積分:226 註冊:2007-06-18 發送簡訊給我 |
|
anderson8585
一般會員 發表:10 回覆:13 積分:4 註冊:2007-08-27 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |