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

請問TIniFile如何取得Section的筆數?

答題得分者是:g6101
Flame
一般會員


發表:15
回覆:16
積分:6
註冊:2003-05-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-04-13 02:43:42 IP:203.67.xxx.xxx 未訂閱
假如我有一個ini file,內容如下 [data1] n1=1 n2=3 n3=9 n4=1 n5=2 如何取得data1有5筆資料 謝謝 發表人 - Flame 於 2004/04/13 02:44:29
------
~人世變成了一場夢,夢境成為真實~
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-04-13 06:27:53 IP:61.226.xxx.xxx 未訂閱
Flame您好: 請參以下的程式碼,視需求修改之 #include //===================================== TIniFile* IniFile = new TIniFile("d:\\MyFile.ini"); IniFile->ReadSections(ListBox1->Items); IniFile->ReadSection("data1",ListBox2->Items); IniFile->ReadSectionValues("data1",ListBox3->Items); delete IniFile; //ListBox2->Count; 而這個(Count = 5)值是你要的 希望對你有幫助. 發表人 -
anpino
版主


發表:31
回覆:477
積分:231
註冊:2003-01-02

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-04-13 10:43:51 IP:218.32.xxx.xxx 未訂閱
補充g6101的說明:    假設您的ini路徑檔名為d:\\MyFile.ini, 內容為: [data1] n1=1 n2=3 n3=9 n4=1 n5=2    那麼您可以用g6101所提供的3種方法將資料讀入ListBox中:
#include 
TIniFile* IniFile = new TIniFile("d:\\MyFile.ini");
IniFile->ReadSections(ListBox1->Items);
IniFile->ReadSection("data1",ListBox2->Items);
IniFile->ReadSectionValues("data1",ListBox3->Items);
delete IniFile;    如果您只是要取得個數,那麼只需要:
IniFile->ReadSection("data1",ListBox2->Items);
ListBox2->Count;// 這個是您要的值。(ListBox2->Count 會等於 5)
------------------------------- 數學系是內功很強(邏輯/分析) 資工系是招式很多(程式技巧) 就像令狐沖VS東方不敗:D Programmers Guide http://anpino.begin.8d8d.com
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-04-13 14:56:56 IP:61.226.xxx.xxx 未訂閱
非常感謝anpino版主說明補充,下回我會把回答的內容解說更詳實一點 ( class="code"> #include //===================================== TStrings *ls = new TStringList(); TIniFile *IniFile = new TIniFile(ChangeFileExt(Application->ExeName,".INI")); IniFile->ReadSection("data1",ls); ls->Count; //按主題需求這個就是你想要得到的值 delete IniFile; delete ls;
Flame
一般會員


發表:15
回覆:16
積分:6
註冊:2003-05-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-04-13 18:10:33 IP:203.67.xxx.xxx 未訂閱
非常感謝你們的詳細解說 本來要問不使用TListBox的用法,沒想到您已經先回答了    感謝 順便請教一下,使用>>
------
~人世變成了一場夢,夢境成為真實~
g6101
高階會員


發表:22
回覆:129
積分:110
註冊:2002-06-15

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-04-14 08:25:09 IP:61.226.xxx.xxx 未訂閱
引言: 非常感謝你們的詳細解說 本來要問不使用TListBox的用法,沒想到您已經先回答了 感謝 順便請教一下,使用>>>< face="Verdana, Arial, Helvetica"> 再看下面的範例:

   #include 
   //=======================================
   TStrings *ls = new TStringList();
   TIniFile *IniFile = new TIniFile(ChangeFileExt(Application->ExeName,".INI"));
   IniFile->ReadSectionValues("data1",ls);
   ls->Count; //按主題需求這個就是你想要得到的值       for(int i=0,n;i < ls->Count ; i  )
   { //此時"="成為掃描關鍵字串
     n = StrToInt(ls->Strings[i].Delete(1,ls->Strings[i].Pos("=")));
   }       delete IniFile;
   delete ls;
Flame
一般會員


發表:15
回覆:16
積分:6
註冊:2003-05-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-04-15 17:05:46 IP:203.67.xxx.xxx 未訂閱
非常感謝你們的幫忙 問題解決了
------
~人世變成了一場夢,夢境成為真實~
xfile
初階會員


發表:21
回覆:80
積分:25
註冊:2004-10-02

發送簡訊給我
#8 引用回覆 回覆 發表時間:2004-11-08 15:39:02 IP:220.130.xxx.xxx 未訂閱
引言:
引言: 順便請教一下,使用IniFile->ReadSectionValues("data1",ListBox3->Items); 會同時得到keyname跟value 如果我只要value值呢,有什麼方法?謝謝 發表人 - Flame 於 2004/04/13 20:56:40
再看下面的範例:

   #include 
   //=======================================
   TStrings *ls = new TStringList();
   TIniFile *IniFile = new TIniFile(ChangeFileExt(Application->ExeName,".INI"));
   IniFile->ReadSectionValues("data1",ls);
   ls->Count; //按主題需求這個就是你想要得到的值       for(int i=0,n;i < ls->Count ; i  )
   { //此時"="成為掃描關鍵字串
     n = StrToInt(ls->Strings[i].Delete(1,ls->Strings[i].Pos("=")));
   }       delete IniFile;
   delete ls;
補個 link http://delphi.ktop.com.tw/topic.php?topic_id=51763 anpino 大姐寫的那篇就是解答
系統時間:2024-11-23 16:58:16
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!