首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

怎么历遍INI文件,将内容逐行读取到ListView中呢

2012-03-22 
如何历遍INI文件,将内容逐行读取到ListView中呢?INI文件有N行,1列。如何实现历遍整个INI文件,将N行分别读取

如何历遍INI文件,将内容逐行读取到ListView中呢?
INI文件有N行,1列。
如何实现历遍整个INI文件,将N行分别读取到LISTVIEW
反之如何将ListView中N行内容写入INI文件中呢?

[解决办法]

探讨
读出每行得内容,历遍整个文件

[解决办法]
先用下面的方法读取所有的节点
TIniFile *ini = new TIniFile("C:\\config.ini");
TStrings *sg = new TStringList;
ini->ReadSections(sg);
ShowMessage(sg->Text);
然后再循环sg->Count;

按照上面读节点的方法去取数据
[解决办法]
仔细考虑了一下你的问题,发现Ini文件它的管理方式是通过节与键来管理其内容的,如果你要读取指定行的数据,而不是通过节与键来取得键值,这个你通过fgets读取即可,因为ini也可以使用的.

后来想了想通过<inifiles.hpp>提供的方式也可以只不过有点麻烦,但可以直接读取键值,后面就不用分离键值的步骤了.

另外你需要注意ini文件的键值是不能分行的,否则你使用<inifiles.hpp>提供的方法就不可能得到,那你真的需要fgets或其它方式取得了.
废话很多代码是主要的
C/C++ code
//读取指定行的键值,在指定行插入数据.#include <inifiles.hpp>void __fastcall TForm1::ctionClick(TObject *Sender){  TIniFile *regini;regini=new TIniFile (GetCurrentDir()+"\\config1.ini");//ok=regini->ReadString("Option","Data","");//catalog=regini->ReadString("Option","Catalog","");//server=regini->ReadString("Option","Data Source","");TStringList* strSections  = new TStringList;regini->ReadSections(strSections);int readnum=0;for(int i=0;i<strSections->Count;i++){    readnum ++;    TStringList* strIdent = new TStringList;    regini->ReadSection(strSections->Strings[i],strIdent);    for(int j=0;j<strIdent->Count;j++)    {       readnum ++ ;       if(readnum == 10) //读取第十行的键值,注意此行不能是Section位置,否则无效果       {          String str = regini->ReadString(strSections->Strings[i],                                          strIdent->Strings[j],"");          //在第十一行插入数据          //需要注意当前小节(Section)不能有ydlchina这个键值,否则它会改写,而不是增加          regini->WriteString(strSections->Strings[i],                                          "ydlchina","ydlchna添加值");//改成ListView的值即可          Memo1->Lines->Add(str);       }    }    delete strIdent;}delete strSections;delete regini;}//---------------------------------------
[解决办法]
探讨
根据zhouzhangkui的例子完成了历遍读取问题
那读取ListView列表写入,逐行写入ini
怎么实现呢?

热点排行