INI文件读写详解
VB读写INI文件
VB读写INI文件今天,我们将应用制作一个能够实现读写INI文件的应用程序。
程序运行结果如图所示。
运行结果技术要点●INI文件的格式●GetPrivateProfileInt()和GetPrivateProfileString()函数●WritePrivateProfileString()函数实现步骤■新建项目打开Visual ,选择“新建项目”,在项目类型窗口中选择“Visual Basic项目”,在模板窗口中,选择“Windows应用程序”,在名称域中输入“RWIni”,然后选择保存路径。
单击“确认”。
■添加控件和菜单向当前窗体上添加两个Button控件,用于控制读写INI文件;一个Group控件和两个RadioButton控件,用于控制读写整型数据还是字符串型;三个Label控件和三个TextBox 控件,用于标注和输入节名、键名和值;其余两个Label控件,一个表示当前打开的文件名,另一个表示读写的状态。
最后添加一个MainMenu控件,生成菜单“文件”、“退出”,其中“文件”下有一个子菜单“打开INI文件”。
■设置属性切换到“属性栏”,对窗体上的控件设置属性。
详细情况见下表。
窗体各控件的属性值知识点:一个INI文件由若干节(Section)组成,每个节中又由若干个关键字(Keyword)和值组成。
关键字是用来保存独立的程序设置和那些重要信息的,用于控制应用程序的某个功能;值可以是整型数或字符串。
如果值为空,则表示应用程序已经为该关键字指定了缺省值。
INI文件的一般形式如下:…………[Section]keyword=value…………INI文件有严格的格式要求:(1)节名必须加“[”和“]”。
(2)对文件做注释,要以“;”开头。
(3)关键字后必须有“=”。
■添加代码keywordinfo = txtkeyword.TextValueinfo = txtvalue.Text' 检查输入是否合法,不合法时,提示警告信息。
C#读写ini文件详解
string section ,
string key , string def , StringBuilder retVal ,
int size , string filePath ) ;
}
}
C#读写ini文件的相关内容就向你介绍到这里,希望对你了解和学习C#读写ini文件有所帮助。�
我现在介绍的是系统处理INI的方法.
虽然C#中没有,但是在"kernel32.dll"这个文件中有Win32的API函数--WritePrivateProfileString()和GetPrivateProfileString()
C#读写ini文件实现之C#声明INI文件的写操作函数WritePrivateProfileString():
/// 读出INI文件
/// ﹤/summary﹥
/// ﹤param name="Section"﹥项目名称(如 [TypeName] )﹤/param﹥
/// ﹤param name="Key"﹥键﹤/param﹥
public string IniReadValue(string Section,string Key)
/// ﹤summary﹥
/// 构造方法
/// ﹤/summary﹥
/// ﹤param name="INIPath"﹥文件路径﹤/param﹥
public INIClass(string INIPath)
{
inipath = INIPath;
Python读写ini文件
Python读写ini⽂件⽐如有⼀个⽂件update.ini,⾥⾯有这些内容:1 2 3 4 5 6 7 8[ZIP]EngineVersion=0DATVersion=5127FileName=dat-5127.zipFilePath=/pub/antivirus/datfiles/4.x/ FileSize=13481555Checksum=6037,021EMD5=aaeb519d3f276b810d46642d782d8921那就可以通过下⾯这些代码得到MD5的值,简单吧1 2 3 4 5 6 7#!/usr/bin/env python# -*- coding: utf-8 -*-import ConfigParserconfig =ConfigParser.ConfigParser() config.readfp(open('update.ini'))a =config.get("ZIP","MD5")print a写也很简单:1 2 3 4 5 6 7 8 9 10import ConfigParserconfig =ConfigParser.ConfigParser()# set a number of parametersconfig.add_section("book")config.set("book", "title", "the python standard library") config.set("book", "author", "fredrik lundh")config.add_section("ematter")config.set("ematter", "pages", 250)# write to fileconfig.write(open('1.ini', "w"))修改也不难(添加内容):1 2 3 4 5 6 7 8#!/usr/bin/env python# -*- coding: utf-8 -*-import ConfigParserconfig =ConfigParser.ConfigParser()config.read('1.ini')a =config.add_section("md5")config.set("md5", "value", "1234")config.write(open('1.ini', "r+")) #可以把r+改成其他⽅式,看看结果:)修改内容:1 2 3 4 5 6 7#!/usr/bin/env python# -*- coding: utf-8 -*-import ConfigParserconfig =ConfigParser.ConfigParser()config.read('1.ini')config.set("md5", "value", "kingsoft") #这样md5就从1234变成kingsoft了config.write(open('1.ini', "r+"))读写.ini⽂件的类from configparser import ConfigParserimport osfrom demo import settings # django项⽬的配置⽂件class ReadWriteConfFile(object):path = settings.BASE_DIR + os.sep + 'config.ini' # 可根据需要替换成⾃⼰的路径 @staticmethoddef get_parser():cf = ConfigParser()cf.read(ReadWriteConfFile.path, encoding='utf-8')return cf@staticmethoddef write_parser(cf):f = open(ReadWriteConfFile.path, "w", encoding='utf-8') cf.write(f)f.close()@staticmethoddef add_section(section):cf = ReadWriteConfFile.get_parser()all_sections = cf.sections()if section in all_sections:returnelse:cf.add_section(section)ReadWriteConfFile.write_parser(cf)@staticmethoddef get_option(section, key):cf = ReadWriteConfFile.get_parser()return cf.get(section, key)@staticmethoddef set_option(section, key, value):cf = ReadWriteConfFile.get_parser()cf.set(section, key, value)ReadWriteConfFile.write_parser(cf)if __name__ == '__main__':ReadWriteConfFile.add_section('messages')ReadWriteConfFile.set_option('messages', 'name', 'sophia') x = ReadWriteConfFile.get_option('messages', 'name')print(x)。
Delphi读写ini文件详解
Delphi读写ini文件详解1.Delphi读写ini文件需要引用'IniFiles'单元2.定义变量:VarFilename:string;myinifile:Tinifile;3.变量附值Filename:=ExtractFilePath(Paramstr(0))+'program.ini';//指明路径.如果不指明路径.文件将在windows目录建立myinifile:=Tinifile.Create(Filename);//Create('program.ini');4.写入文件myinifile.writestring(小节名,关键字,变量或者字符串值);myinifile.writeinteger(小节名,关键字,变量或者整数数值);myinifile.writenbool(小节名,关键字,变量或者True/False);如果ini文件不存在的时候.会自动创建该ini文件5.删除关键字myinifile.DeleteKey(小节名,关键字);6.删除小节myinifile.EraseSection(小节名);7.释放变量myinifile.distory;8.其他Tinifile类还提供了3种对象方法来操作ini文件①myinifile.readsection(小节名,TStrings变量);可将指定小节中的所有关键字名读取至一个字符串列表变量中;②myinifile.readsections(TStrings变量);可将INI文件中所有小节名读取至一个字符串列表变量中去.③myinifile.readsectionvalues(小节名,TStrings变量);可将INI文件中指定小节的所有行(包括关键字、=、值)读取至一个字符串列表变量中去.9. delphi读写ini文件实例//--两个过程,主要实现:窗体关闭的时候,文件保存界面信息;窗体创建的时候,程序读取文件文件保存的信息。
ini文件只知道节名,读取节下所有值的方法qt
ini文件只知道节名,读取节下所有值的方法qt1.引言1.1 概述概述INI文件是一种常见的配置文件格式,它被广泛用于存储和管理应用程序的配置信息。
INI文件由一系列的节(section)和键值对(key-value)组成。
每个节包含一组相关的键值对,用来描述特定的配置项。
在读取INI 文件时,通常可以根据节名和键名来获取对应的值。
然而,在某些情况下,我们可能只知道节的名称,而不清楚该节下有哪些键值对。
本文将介绍如何通过Qt框架提供的方法来读取INI文件中某个节下的所有键值对。
首先,我们需要了解Qt框架中关于INI文件的相关类和函数。
Qt提供了一个名为QSettings的类,它是用于读写配置信息的工具类。
QSettings类支持INI文件格式,并提供了方便的方法来读取和写入INI 文件中的配置项。
在使用QSettings类读取INI文件时,我们可以先使用QSettings的构造函数来指定INI文件的路径,然后使用value()函数来获取指定节下的键值对。
为了读取某个节下的所有键值对,我们可以使用childGroups()函数来获取所有的子节名,然后再遍历每个子节获取其对应的键值对。
下面是一个简单的示例代码,展示了如何使用Qt框架中的QSettings 类来读取INI文件中某个节下的所有键值对:cppinclude <QSettings>include <QDebug>void readIniFile(const QString& filePath){QSettings settings(filePath, QSettings::IniFormat);QStringList sectionList = settings.childGroups();foreach (const QString& section, sectionList) {settings.beginGroup(section);QStringList keys = settings.childKeys();foreach (const QString& key, keys) {QString value = settings.value(key).toString();qDebug() << "Section:" << section << "Key:" << key << "Value:" << value;}settings.endGroup();}}int main(){QString filePath = "config.ini";readIniFile(filePath);return 0;}以上代码中,readIniFile()函数用于读取INI文件中某个节下的所有键值对。
C# 读写INI文件
以前无知不知道INI文件是什么,毕设需要用到。
不得不学着用(据说这种东西是最简单的初始化函数方法)。
由于C#的类库中并不包含读取INI文件的类,用C#读取INI文件必须要用到windows的API函数,所以在声明windows的API函数时必须这样声明一下。
[DllImport("kernel32")]private static extern bool WritePrivateProfileString(string lpAppName,string lpKeyName,string lpString,string lpFileName);下面分别介绍一下读取INI文件的windows API函数“一.将信息写入.INI文件中.1.所用的WINAPI函数原型为:BOOL WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);其中各参数的意义:LPCTSTR lpAppName 是INI文件中的一个字段名.LPCTSTR lpKeyName 是lpAppName下的一个键名,通俗讲就是变量名.LPCTSTR lpString 是键值,也就是变量的值,不过必须为LPCTSTR型或CString型的. LPCTSTR lpFileName 是完整的INI文件名.2.具体使用方法:设现有一名学生,需把他的姓名和年龄写入c:\stud\student.ini 文件中.CString strName,strTemp;int nAge;strName="张三";nAge=12;::WritePrivateProfileString("StudentInfo","Name",strName,"c:\\stud\\student.ini");此时c:\stud\student.ini文件中的内容如下:[StudentInfo]Name=张三3.要将学生的年龄保存下来,只需将整型的值变为字符型即可:strTemp.Format("%d",nAge);::WritePrivateProfileString("StudentInfo","Age",strTemp,"c:\\stud\\student.ini");二.将信息从INI文件中读入程序中的变量.1.所用的WINAPI函数原型为:DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefault,LPTSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);其中各参数的意义:前二个参数与WritePrivateProfileString中的意义一样.lpDefault : 如果INI文件中没有前两个参数指定的字段名或键名,则将此值赋给变量.lpReturnedString : 接收INI文件中的值的CString对象,即目的缓存器.nSize : 目的缓存器的大小.lpFileName : 是完整的INI文件名.2.具体使用方法:现要将上一步中写入的学生的信息读入程序中.CString strStudName;int nStudAge;GetPrivateProfileString("StudentInfo","Name","默认姓名",strStudName.GetBuffer(MAX_PATH),MAX_PA TH,"c:\\stud\\student.ini");执行后strStudName 的值为:"张三",若前两个参数有误,其值为:"默认姓名".3.读入整型值要用另一个WINAPI函数:UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault,LPCTSTR lpFileName);这里的参数意义与上相同.使用方法如下:nStudAge=GetPrivateProfileInt("StudentInfo","Age",10,"c:\\stud\\student.ini");三.循环写入多个值,设现有一程序,要将最近使用的几个文件名保存下来,具体程序如下:1.写入:CString strTemp,strTempA;int i;int nCount=6;file://共有6个文件名需要保存for(i=0;i {strTemp.Format("%d",i);strTempA=文件名;file://文件名可以从数组,列表框等处取得.::WritePrivateProfileString("UseFileName","FileName"+strTemp,strTempA,"c:\\usefile\\usefile.in i");}strTemp.Format("%d",nCount);::WritePrivateProfileString("FileCount","Count",strTemp,"c:\\usefile\\usefile.ini");file://将文件总数写入,以便读出.2.读出:nCount=::GetPrivateProfileInt("FileCount","Count",0,"c:\\usefile\\usefile.ini");for(i=0;i {strTemp.Format("%d",i);strTemp="FileName"+strTemp;::GetPrivateProfileString("CurrentIni",strTemp,"default.fil",strTempA.GetBuffer(MAX_PATH),MAX_PATH,"c:\\usefile\\usefile.ini");file://使用strTempA中的内容.}补充四点:1.INI文件的路径必须完整,文件名前面的各级目录必须存在,否则写入不成功,该函数返回FALSE 值.2.文件名的路径中必须为\\ ,因为在VC++中, \\ 才表示一个\ .3.也可将INI文件放在程序所在目录,此时lpFileName 参数为: ".\\student.ini".4.从网页中粘贴源代码时,最好先粘贴至记事本中,再往VC中粘贴,否则易造成编译错误,开始时我也十分不解,好好的代码怎么就不对呢?后来才找到这个方法.还有一些代码中使用了全角字符如:<,\等,也会造成编译错误.INI文件编程INI文件在系统配置及应用程序参数保存与设置方面,具有很重要的作用,所以可视化的编程一族,如VB、VC、VFP、Delphi等都提供了读写INI文件的方法,其中Delphi中操作INI文件,最为简洁,这是因为Delphi3提供了一个TInifile类,使我们可以非常灵活的处理INI 文件。
ini文件格式读取
GetProfileString - 从 Win.ini 文件的某个 Section 取得一个 key 的字符串,它的原形是:
GetProfileString(
LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址
LPCTSTR lpKeyName, // 指向包含 Key 名称的字符串地址
DWORD nSize // 返回数据的缓冲区长度
);
WriteProfileSection - 将一个整个 Section 的值 写入 Win.ini 文件的指定 Section 中,它的原形是:
WriteProfileSection(
LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址
ini 文件是文本文件,中间的数据格式一般为:
[Section1 Name]
KeyName1=value1
KeyName2=value2
...
[Section2 Name]
KeyName1=value1
KeyName2=value2
ini 文件可以分为几个 Section,每个 Section 的名称用 [] 括起来,在一个 Section 中,可以有很多的 Key,每一个 Key 可以有一个值并占用一行,格式是 Key=value,Win32 对 ini 文件操作的 api 中,有一部分是对 win.ini 操作的,有一部分是对用户自定义的 ini 文件操作的。Win.in 和 system.ini 是Windows的两个非常重要的初始化文件,Windows将用户所作的选择以及各种变化的系统信息记录在这两个文件中。System.ini 描述了系统硬件的当前状态,Win.ini 文件则包含了Windows 系统运行环境的当前配置。由于 Win.ini 文件的重要性和常用性,Win32 中有专门对 Win.ini 进行操作的 api,它们是:
QT中如何读写ini配置文件
QT中如何读写ini配置⽂件如图1所⽰,我们需要在QT界⾯中实现⼿动读取参数存放的位置,那么我们该如何做呢?⽅法:读取ini格式的配置⽂件,实现路径的写⼊与读取。
第⼀步:界⾯构造函数中,初始化⼀个Config.ini⽂件//初始化⼀个.ini配置⽂件//qApp是QT系统⾃带的,可以直接使⽤QString iniFilePath=qApp->applicationDirPath()+"/Config.ini";//如果不存在Config.ini,便⽣成⼀个Config.ini。
如果已经存在了,则略过。
if(!QFile::exists(iniFilePath)){QSettings configIniWrite(iniFilePath,QSettings::IniFormat);configIniWrite.beginGroup("calib_data_path");configIniWrite.setValue("calib_data_path","FA0180090134.xml");configIniWrite.endGroup();configIniWrite.beginGroup("robot_pose_file");configIniWrite.setValue("robot_pose_file_path","robot_pose_file.txt");configIniWrite.endGroup();}第⼆步:定义⼀个保存Config⽂件的函数void saveConfig(const QString& group,const QString& name, const QVariant& var){QString iniFilePath = qApp->applicationDirPath() + "/Config.ini";if (QFile::exists(iniFilePath)){QSettings configIniWrite(iniFilePath,QSettings::IniFormat);configIniWrite.beginGroup(group);configIniWrite.setValue(name,var);configIniWrite.endGroup();}}第三步:设置路径Demo1://设置相机标定⽂件路径void CalibrationForm::btnLoadCamParaPath_clicked(){QFileDialog dialog(this,tr("Select calib data file"));dialog.setAcceptMode(QFileDialog::AcceptOpen);dialog.setFileMode(QFileDialog::ExistingFile);static bool firstDialog = true;if (firstDialog){firstDialog = false;const QStringList fileLocations =QStandardPaths::standardLocations(QStandardPaths::DesktopLocation);dialog.setDirectory(fileLocations.isEmpty() ?QDir::currentPath():st());}dialog.setNameFilter(tr("FA0180090134(*.xml)"));if (dialog.exec()==QDialog::Accepted){//获得⽂件夹路径+⽂件名_campara_path = dialog.selectedFiles().first();ui->lineEditCamParaPath->setText(_campara_path); //此处是在lineEdit窗⼝显⽰路径名+⽂件名saveConfig("calib_data_path","calib_data_path",_campara_path);}}demo2://设置⼿眼标定时的机械臂运动轨迹路径void CalibrationForm::btnLoadRobotPara_clicked(){QFileDialog dialog(this,tr("Select robot pose file"));dialog.setAcceptMode(QFileDialog::AcceptOpen);dialog.setFileMode(QFileDialog::ExistingFile);static bool first_Dialog = true;if (first_Dialog){first_Dialog = false;const QStringList fileLocations =QStandardPaths::standardLocations(QStandardPaths::DesktopLocation);dialog.setDirectory(fileLocations.isEmpty()?QDir::currentPath():st());}dialog.setNameFilter(tr("robot_pose_file(*.txt)"));if (dialog.exec()==QDialog::Accepted){_robot_pose_path = dialog.selectedFiles().first();ui->lineEditRobotPath->setText(_robot_pose_path);saveConfig("robot_pose_file","robot_pose_file_path",_robot_pose_path);}}由于ini⽂件不可在星球中上传,此处⽤txt形式的截图作为附件,见图2.到此这篇关于QT中如何读写ini配置⽂件的⽂章就介绍到这了,更多相关QT读写ini内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!。
CC++关于如何读写ini配置文件(小结)
CC++关于如何读写ini配置⽂件(⼩结)我们可能经常⽤到配置⽂件ini⽂件来获取或者保存参数信息,在VC中其函数中主要⽤到的有:读取1. 读取字符DWORD GetPrivateProfileString(LPCTSTR lpAppName, // INI⽂件中的⼀个字段名[节名]可以有很多个节名LPCTSTR lpKeyName, // lpAppName 下的⼀个键名,也就是⾥⾯具体的变量名LPCTSTR lpDefault, // 如果lpReturnedString为空,则把个变量赋给lpReturnedStringLPTSTR lpReturnedString, // 存放键值的指针变量,⽤于接收INI⽂件中键值(数据)的接收缓冲区DWORD nSize, // lpReturnedString的缓冲区⼤⼩LPCTSTR lpFileName // INI⽂件的路径);2. 读取整型值 (返回值为读到的整)UINT GetPrivateProfileInt(LPCTSTR lpAppName, // INI⽂件中的⼀个字段名[节名]可以有很多个节名LPCTSTR lpKeyName, // lpAppName 下的⼀个键名,也就是⾥⾯具体的变量名INT nDefault, // 如果没有找到指定的数据返回,则把个变量值赋给返回值LPCTSTR lpFileName // INI⽂件的路径);写⼊1. 写⼊字符BOOL WritePrivateProfileString(LPCTSTR lpAppName, // INI⽂件中的⼀个字段名[节名]可以有很多个节名LPCTSTR lpKeyName, // lpAppName 下的⼀个键名,也就是⾥⾯具体的变量名LPCTSTR lpString, // 键值,也就是数据LPCTSTR lpFileName // INI⽂件的路径);2. 写⼊整型读写INI⽂件时相对路径和绝对路径都可以,根据实际情况选择 "..\\IniFileName.ini" // 这样的为相对路径 "D:\\IniFileName.ini" // 这样的为绝对路径MAX_PATH:是微软最⼤路径占的字节所设的宏 写⼊的ini⽂件分为:节、键名、键值 举个栗⼦: // XX.ini [串⼝配置] 波特率=19200有了理论,再看看实践的demo:写INI⽂件:LPTSTR lpPath = new char[MAX_PATH];strcpy(lpPath, "D:\\IniFileName.ini");WritePrivateProfileString("LiMing", "Sex", "Man", lpPath);WritePrivateProfileString("LiMing", "Age", "20", lpPath);WritePrivateProfileString("Fangfang", "Sex", "Woman", lpPath);WritePrivateProfileString("Fangfang", "Age", "21", lpPath);delete [] lpPath;INI⽂件如下:[LiMing]Sex=ManAge=20[Fangfang]Sex=WomanAge=21读INI⽂件:TCHAR FPath[128];::GetCurrentDirectory(MAX_PATH, FPath);strcat(FPath, ".\\Config.ini");CFile ConfigFile;if(!ConfigFile.Open(FPath, CFile::modeCreate||CFile::modeRead, NULL)){AfxMessageBox("打开Config.ini配置⽂件失败!!!");return FALSE;}ConfigFile.Close();LPTSTR lpPath = new char[MAX_PATH];LPTSTR LiMingSex = new char[6];int LiMingAge;LPTSTR FangfangSex = new char[6];int FangfangAge;strcpy(lpPath, "..\\IniFileName.ini");GetPrivateProfileString("LiMing", "Sex", "", LiMingSex, 6, lpPath);LiMingAge = GetPrivateProfileInt("LiMing", "Age", 0, lpPath);GetPrivateProfileString("Fangfang", "Sex", "", FangfangSex, 6, lpPath);FangfangAge = GetPrivateProfileInt("Fangfang", "Age", 0, lpPath);delete [] lpPath;配置⽂件中经常⽤到ini⽂件,在VC中其函数分别为:写⼊.ini⽂件:bool WritePrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpString,LPCTSTR lpFileName);读取.ini⽂件:DWORD GetPrivateProfileString(LPCTSTR lpAppName,LPCTSTR lpKeyName,LPCTSTR lpDefaut,LPSTR lpReturnedString,DWORD nSize,LPCTSTR lpFileName);读取整形值:UINT GetPrivateProfileInt(LPCTSTR lpAppName,LPCTSTR lpKeyName,INT nDefault,LPCTSTR lpFileName);其中个参数的意思:LPCTSTR lpAppName ------- INI⽂件中的⼀个字段名LPCTSTR lpKeyName -------- lpAppName 下的⼀个键名,也就是⾥⾯具体的变量名LPCTSTR lpString ---------是键值,也就是变量的值,必须为LPCTSTR或CString类型LPCTSTR lpFileName --------完整的INI⽂件路径名LPCTSTR lpDefaut ----------如果没有其前两个参数值,则将此值赋给变量LPSTR lpReturnedString --------接收INI⽂件中的值的CString对象,即接收缓冲区DWORD nSize ------接收缓冲区的⼤⼩例⼦:CString StrName,Strtemp;int nAge;StrName = "jacky";nAge = 13;WritePrivateProfileString("Student","Name",StrName,"c:\\setting.ini");结果:(INI⽂件中显⽰如下:)[Student]Name=jacky读取:CString SName;GetPrivateProfileString("Student","Name","DefaultName",SName.GetBuffer(MAX_LENGTH),MAX_LENGTH,"c:\\setting.ini");结果:SName = "jacky";这⾥需要注意点就是⽤完GetBuffer函数后⼀定要释放(⽤SName.ReleaseBuffer()函数),不然后⾯再⽤到SName 的其他⼦函数就会失灵。
QT配置ini文件的建立,读取,写入操作
ini文件格式INI文件由节、键、值组成。
节[section]参数(键=值)name=value下面是一个ini文件的例子[Section1Name]KeyName1=value1KeyName2=value2...[Section2Name]KeyName21=value21KeyName22=value22其中:[Section1Name]用来表示一个段落。
因为INI文件可能是项目中共用的,所以使用[Section Name]段名来区分不同用途的参数区。
例如:[Section1Name]表示传感器灵敏度参数区;[Section2Name]表示测量通道参数区等等。
注解:使用分号表示(;)。
在分号后面的文字,直到该行结尾都全部为注解。
二Qt写ini文件[cpp]view plaincopyprint?1#include<QtCore/QCoreApplication>2#include<QSettings>3int main(int argc,char*argv[])4{5QCoreApplication a(argc,argv);6//Qt中使用QSettings类读写ini文件7//QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省8QSettings*configIniWrite=new QSettings("hahaya.ini",QSettings::IniFormat);9//向ini文件中写入内容,setValue函数的两个参数是键值对10//向ini文件的第一个节写入内容,ip节下的第一个参数11configIniWrite->setValue("/ip/first","192.168.0.1");12//向ini文件的第一个节写入内容,ip节下的第二个参数13configIniWrite->setValue("ip/second","127.0.0.1");14//向ini文件的第二个节写入内容,port节下的第一个参数15configIniWrite->setValue("port/open","2222");16//写入完成后删除指针17delete configIniWrite;1819return a.exec();20}[cpp]view plain copyprint?21#include<QtCore/QCoreApplication>22#include<QSettings>23int main(int argc,char*argv[])24{25QCoreApplication a(argc,argv);26//Qt中使用QSettings类读写ini文件27//QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省28QSettings*configIniWrite=new QSettings("hahaya.ini",QSettings::IniFormat);29//向ini文件中写入内容,setValue函数的两个参数是键值对30//向ini文件的第一个节写入内容,ip节下的第一个参数31configIniWrite->setValue("/ip/first","192.168.0.1");32//向ini文件的第一个节写入内容,ip节下的第二个参数33configIniWrite->setValue("ip/second","127.0.0.1");34//向ini文件的第二个节写入内容,port节下的第一个参数35configIniWrite->setValue("port/open","2222");36//写入完成后删除指针37delete configIniWrite;3839return a.exec();40}运行程序后,打开程序目录下的hahaya.ini文件,结果如下图所示:三Qt读ini文件[cpp]view plaincopyprint?41#include<QtCore/QCoreApplication>42#include<QSettings>43#include<QString>44#include<QDebug>45int main(int argc,char*argv[])46{47QCoreApplication a(argc,argv);4849QSettings*configIniRead=new QSettings("hahaya.ini",QSettings::IniFormat);50//将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型51QString ipResult=configIniRead->value("/ip/second").toString();52QString portResult=configIniRead->value("/port/open").toString();53//打印得到的结果54qDebug()<<ipResult;55qDebug()<<portResult;56//读入入完成后删除指针57delete configIniRead;58return a.exec();59}[cpp]view plain copyprint?60#include<QtCore/QCoreApplication>61#include<QSettings>62#include<QString>63#include<QDebug>64int main(int argc,char*argv[])65{66QCoreApplication a(argc,argv);6768QSettings*configIniRead=new QSettings("hahaya.ini",QSettings::IniFormat);69//将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型70QString ipResult=configIniRead->value("/ip/second").toString();71QString portResult=configIniRead->value("/port/open").toString();72//打印得到的结果73qDebug()<<ipResult;74qDebug()<<portResult;75//读入入完成后删除指针76delete configIniRead;77return a.exec();78}程序运行截图:。
lua ini读写
Lua INI 读写简介Lua 是一种轻量级的脚本语言,被广泛应用于游戏开发、嵌入式系统和网络应用等领域。
INI 文件是一种常见的配置文件格式,常用于存储程序的配置信息。
本文将介绍如何使用 Lua 读取和写入 INI 文件。
读取 INI 文件在 Lua 中,可以使用io.open函数打开一个文件,并使用file:read方法逐行读取文件内容。
function readIniFile(fileName)local file = io.open(fileName, "r")if file thenlocal section = nillocal config = {}for line in file:lines() do-- 去除空格和注释line = string.gsub(line, "%s+", "")line = string.gsub(line, "%s*;.*", "")-- 解析节名local s = string.match(line, "%[([^%[%]]+)%]")if s thensection = sconfig[section] = {}end-- 解析键值对local key, value = string.match(line, "(%w+)%s*=%s*(%w+)")if key and value and section thenconfig[section][key] = valueendendfile:close()return configelsereturn nilendend-- 测试读取 INI 文件示例:local config = readIniFile("config.ini")if config thenfor section, values in pairs(config) doprint("[" .. section .. "]")for key, value in pairs(values) doprint(key .. " = " .. value)endendelseprint("读取文件失败")end在上述代码中,readIniFile函数接受一个文件名作为参数,并返回一个 Lua 表,其中包含了 INI 文件的配置信息。
python简单读写ini文件
python简单读写ini⽂件1、创建ini⽂件2、认识configparse类中基础⽅法cfg_obj = configparser.ConfigParser() #创建对象cfg_obj.read(conf_file_path) #读取配置⽂件sections = cfg_obj.sections()#获取配置⽂件中所有的section节点options = cfg_obj.options("default")#获取对应节点下的所有keyfor sec in sections:print(cfg_obj.options(sec))#可使⽤for循环获取ini⽂件中各个节点下的key值value = cfg_obj.get("default","path") #获取对应的valuecfg_obj.set("default","path111","value1111") #设置key和value到ini⽂件cfg_obj.add_section("default") #增加section到⽂件cfg_obj.remove_section("default") #移除section节点数据cfg_obj.remove_option("default","patha") #移除节点下的optionconfig_file_obj = open( conf_file_path,"w") #创建ini⽂件对象cfg_obj.write(config_file_obj) #写⼊⽂件judge_value_is_exist = cfg_obj.has_section("default") #判断section节点是否存在judge_value_is_exist2 = cfg_obj.has_option("default","path")#判断节点下的key是否存在3、封装,创建⼀个读取ini⽂件的⼯具类1)创建初始化函数class ConfigUtils:def __init__(self,config_file_path):self.cfg_path = config_file_pathself.cfg =configparser.ConfigParser()self.cfg.read(self.cfg_path)2)创建读取配置⽂件值的⽅法def read_value(self,section,key):value = self.cfg.get(section,key)return value3)创建写⼊配置⽂件的⽅法def write_value(self,section,key,value):self.cfg.set( section,key,value )config_file_obj = open( self.cfg_path , "w")self.cfg.write(config_file_obj)config_file_obj.flush()config_file_obj.close()cfg_obj.set("default","path111","value1111")。
Qt读写配置文件(.ini)
Qt读写配置⽂件(.ini)(转载)INIINI⽂件格式是某些平台或软件上的配置⽂件的⾮正式标准,以节(section)和键(key)构成,常⽤于微软Windows操作系统中。
INI⽂件是Initialization File的缩写,即初始化⽂件。
除了windows现在很多其他操作系统下⾯的应⽤软件也有.ini⽂件,⽤来配置应⽤软件以实现不同⽤户的要求。
⼀般不⽤直接编辑这些.ini⽂件,应⽤程序的图形界⾯即可操作以实现相同的功能。
INI⽂件被⽤来对操作系统或特定程序初始化或进⾏参数设置。
⽂件格式节(section)节⽤⽅括号括起来,单独占⼀⾏,例如:[section]键(key)键(key)⼜名属性(property),单独占⼀⾏⽤等号连接键名和键值,例如:name=valueQT读写INI⽂件Qt4.0⼀个⾮常有⽤的类QSettings,在windows平台,它提供了ini⽂件读写,注册表读写的功能。
⽽且使⽤也⾮常简单。
QSettings::Format有两种:QSettings::NativeFormat在windows平台可以读写windows注册表;QSettings::IniFormat可以读写ini格式的配置⽂件。
今天给⼤家介绍下⼀种简单的配置⽂件ini的读写,⼀句话:简单1、#include <QSettings>2、ini⽂件书写格式:[DevOption]mainFun=25subFun=40service=13、读写ini⽂件1 //qt写⼊ini配置⽂件2 QSettings settings("Option.ini",QSettings::IniFormat);3 settings.beginGroup("DevOption");4 settings.setValue("mainFun",25);5 settings.setValue("subFun",40);6 settings.setValue("service",1);7 settings.endGroup();8 //读取ini9 QSettings settingsread("Option.ini",QSettings::IniFormat);10 int mainFun = settingsread.value("DevOption/mainFun").toInt();11 QString service = settingsread.value("DevOption/service").toString();4、这种.ini配置⽂件书写简单易懂,也易于操作,也是⽐较常见的配置⽂件。
C#中读写INI配置文件
C#中读写INI配置文件
在作应用系统开发时,管理配置是必不可少的。
例如数据库服务器的配置、安装和更新配置等等。
由于Xm l的兴起,现在的配置文件大都是以xml文档来存储。
比如Visual 自身的配置文件Mashine.config,的配置文件Web.Config,包括我在介绍Rem oting中提到的配置文件,都是xm l的格式。
传统的配置文件ini已有被xml文件逐步代替的趋势,但对于简单的配置,ini文件还是有用武之地的。
ini文件其实就是一个文本文件,它有固定的格式,节Secti on的名字用[]括起来,然后换行说明key的值:
[section]
key=value
如数据库服务器配置文件:
DBServer.ini
[Server]
Nam e=localhost
[DB]
Nam e=NorthWind
using using using using
nam {
{
} }
Section参数、Key参数和IniFilePath不用再说,Value参数表明key的值,而这里的NoText 对应API函数的def参数,它的值由用户指定,是当在配置文件中没有找到具体的Value时,就用NoTex t的值来代替。
C++INI文件
C++INI⽂件C++ INI⽂件 INI⽂件多⽤于存储程序的初始化信息。
例如,记录程序连接数据库的名称、上⼀次⽤户登录的名称、⽤户的注册信息等。
⼀. INI ⽂件格式[Section1 Name]KeyName1=value1KeyName2=value2...... ......[Section2 Name]KeyName1=value1KeyName2=value2 Section:节名;KeyName:键名;value:键值。
对于⼀个INI⽂件,可以有多个节,每个节可以包含多个键。
⼆.读写INI⽂件1. GetPrivateProfileInt - 从INI⽂件的指定Section 指定key 的整数值GetPrivateProfileInt(LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址LPCTSTR lpKeyName, // 指向包含 Key 名称的字符串地址INT nDefault // 如果 Key 值没有找到,则返回缺省的值是多少LPCTSTR lpFileName // ini ⽂件的⽂件名);2. GetPrivateProfileString - 从INI⽂件的指定Section 指定key 的串值GetPrivateProfileString(LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址LPCTSTR lpKeyName, // 指向包含 Key 名称的字符串地址LPCTSTR lpDefault, // 如果 Key 值没有找到,则返回缺省的字符串的地址LPTSTR lpReturnedString, // 返回字符串的缓冲区地址DWORD nSize // 缓冲区的长度LPCTSTR lpFileName // ini ⽂件的⽂件名);3. GetPrivateProfileSection - 从INI⽂件中读出指定Section 的内容GetPrivateProfileSection(LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址LPTSTR lpReturnedString, // 返回数据的缓冲区地址DWORD nSize // 返回数据的缓冲区长度LPCTSTR lpFileName // ini ⽂件的⽂件名);4. GetPrivateProfileSectionNames - 从INI⽂件中获得所有Section信息GetPrivateProfileSectionNames(LPTSTR lpszReturnBuffer, // 返回数据的缓冲区地址DWORD nSize // 返回数据的缓冲区长度LPCTSTR lpFileName // ini ⽂件的⽂件名);5. WritePrivateProfileSection - 将整个Section 的内容写⼊INI⽂件的指定Section中WritePrivateProfileSection(LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址LPCTSTR lpString // 要写⼊的数据的地址LPCTSTR lpFileName // ini ⽂件的⽂件名);6. WritePrivateProfileString - 将指定Key的串值写⼊INI⽂件的指定Section中WritePrivateProfileString(LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址LPCTSTR lpKeyName, // 指向包含 Key 名称的字符串地址LPCTSTR lpString // 要写的字符串地址LPCTSTR lpFileName // ini ⽂件的⽂件名);三.应⽤ 在我们实际使⽤的时候,⽤的最多的是GetPrivateProfileString和WritePrivateProfileString,但在对⾃定义INI⽂件操作的时候要注意的是,如果lpFileName指定的⽂件不包含路径信息,API将默认为Windows 的安装⽬录⽽不是系统当前路径,⽐较⽅便的⽅法是使⽤.\ xxx.ini 作为⽂件名称指⽰API操作对象为当前路径下的xxx.ini⽂件。
C#如何实现完整的INI文件读写类
C#如何实现完整的INI⽂件读写类作者: 魔法软糖⽇期: 2020-02-27引⾔*************************************.ini ⽂件是Initialization File的缩写,即配置⽂件。
是的系统所采⽤的存储格式。
它具有⽅便易⽤的特点,和注册表的键值有着类似的功能,各类应⽤程序也经常使⽤INI保存各种配置和选项。
在简单只需要读取的场合,调⽤WINDOWS API就⾏,但在复杂的需要可视化编辑时,就需要建⽴⾃⼰的处理类了。
如何实现⾃⼰的INI类⾸先我们需要了解◇ INI的格式◇典型INI⽂件;项⽬注释[.ShellClassInfo]InfoTip=有图标的⽂件夹;图标资源IconResource="C:\Windows\system32\SHELL32.dll",4#⽂件夹视图[ViewState]Mode=Vid=FolderType=General#尾部注释⼀个典型INI⽂件由节、注释和节下⾯的项组成,⽽项为键=值的形式。
INI⽂件的注释符号有两种,规范为;分号,实际有些地⽅⽤#井号。
◇保留注释为了在修改INI⽂件时不丢失任何信息,所以需要保存INI⽂件中所有有效元素、包括注释甚⾄是⽆效⾏。
为了实现这个⽬的,将所有注释和⽆效⾏都归属于它之后的有效元素。
以上⾯的desktop.ini为例,第⼀⾏ ;项⽬注释归属于[.ShellClassInfo]节第四⾏;图标资源归属于IconResource=项#⽂件夹视图归属于[ViewState]节最后的#尾部注释归属于整个INI⽂档的EndText◇ INIItem类表⽰INI⽂件中节点下⾯的项,它拥有三个属性:名称Name、值Value和注释Comment1///<summary>2///拥有名称、值和注释3///</summary>4public class INIItem {5///<summary>6///实例化INIItem。
ini文件读写解决方案
ini文件读写解决方案篇一:ini配置文件的读写ini配置文件的读写很多时候,我们的程序运行前需要用户做一些相关的设置,而且我们总是需要把一些配置信息保存下来,那天一直在思考怎么解决这个问题,突然就想到了在一些软件安装目录下的ini文件,然后经过查找资料发现其实ini文件既方便又实用。
下面对其使用进行总结:一、将信息从ini文件中读取到变量中首先,看一个ini文件的示例。
[连接参数]IpServer=DataBase=DB_TESTUserID=testPassword=123456;注释用英文分号以上就是一个简单的配置文档。
读取信息所用的函数为DWORD GetPrivateProfileString(LPCTSTR lpAppName, // section nameLPCTSTR lpKeyName, // key nameLPCTSTR lpDefault, // default stringLPTSTR lpReturnedString, // destination buffer DWORD nSize, // size of destination bufferLPCTSTR lpFileName // initialization file name );第一个参数为字段名,上例中的[连接参数];第二个参数键名,即变量名,上例中的IpServer、DataBase等等;第三个参数指,如果ini文件中没有前两个参数指定的字段名或键名,则将lpDefault的值赋给变量,也就是缺省值;第四个参数是接收ini文件中键名的值的CString对象,即目的缓存器;第五个参数是目的缓存器的大小;第六个参数是ini文件的完整路径。
如下:GetPrivateProfileString(L"连接参数",L"ipServer",L"", (MAX_PATH),MAX_PATH,curPath);在此额外说一点,一般来说ini文件和exe文件是放在一起的,所以这里涉及到当前路径的问题,该问题在《如何获取EXE可执行文件的所在路径》一文中讲得很清楚,而在此我用另一个全局函数也可以实现,假如我们的文件是配置.ini,则如下:CString curPath;//存储路径的CString对象AfxGetModuleFileName(AfxGetInstanceHandle(),curPath );curPath=(('\\'))+'\\';(L"配置.ini");或者还可以使lpFileName的值为:“.//配置.ini”来定位到当前目录(这种方法笔者还未测试)。
net 6 ini文件的读写方法
net 6 ini文件的读写方法在.NET 6中,INI文件可以通过使用``命名空间中的类进行读写。
以下是一个简单的示例,演示如何读取和写入INI文件:首先,确保你的项目已经安装了``和``这两个NuGet包。
1. 读取INI文件:```csharpusing ;using ;class Program{static void Main(string[] args){IConfiguration config = new ConfigurationBuilder().AddIniFile("") // 指定INI文件路径.Build();string settingValue = config["section:key"]; // 读取section下的key值(settingValue);}}```在上面的代码中,我们使用了`ConfigurationBuilder`来构建配置,并添加了INI文件。
然后,通过键(section:key)来获取配置值。
2. 写入INI文件:为了写入INI文件,你需要先创建一个`IConfiguration`实例,然后使用`Save`方法保存配置。
这里有一个示例:```csharpusing ;using ;using ;using ;class Program{static void Main(string[] args){IConfiguration config = new ConfigurationBuilder().AddIniFile("", optional: true) // 指定INI文件路径,可选参数默认为false,设置为true则不会抛出异常当文件不存在时。
.Build();("", optional: true); // 可以同时从多个源加载配置,这里再添加一个JSON配置文件。
ini文件写法
ini文件写法摘要:一、ini文件的概述1.ini文件的概念2.ini文件的作用3.ini文件的组成部分二、ini文件的写法1.创建ini文件的基本结构2.设置键值对3.注释的使用4.格式规范三、ini文件的读取1.读取ini文件的方法2.解析ini文件的内容3.获取和处理键值对四、ini文件的常见应用场景1.配置文件的存储和读取2.应用程序的参数设置3.开发中的数据存储和读取正文:ini文件是一种配置文件格式,常用于存储和读取应用程序的配置信息。
它的组成部分主要包括节(section)、键(key)和值(value)。
在ini文件中,节用方括号[]括起来,键和值用等号=连接。
此外,ini文件允许使用注释,注释以分号;开始,直到行末尾。
ini文件的写法比较简单。
首先,需要创建一个基本的文件结构,包括文件名和扩展名.ini。
然后,根据需要设置键值对,例如:```[section1]key1=value1key2=value2[section2]key3=value3```在ini文件中,可以使用注释来对配置信息进行说明。
注释以分号;开始,直到行末尾,例如:```; 这是一个注释[section1]key1=value1key2=value2```要读取ini文件,可以使用编程语言提供的相应方法。
例如,在Python 中,可以使用configparser库来实现ini文件的读取。
首先,需要安装configparser库,然后按照以下步骤进行操作:```pythonimport configparser# 创建一个ConfigParser对象config = configparser.ConfigParser()# 读取ini文件config.read("example.ini")# 获取和处理键值对print(config.get("section1", "key1")) # 输出:value1print(config.getint("section1", "key2")) # 输出:2```ini文件在实际应用中有很多场景,如存储和读取配置信息、设置应用程序参数、开发过程中的数据存储和读取等。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
LPCTSTR lpAppName, // 同1(1)
LPCTSTR lpKeyName, // 同1(1)
LPCTSTR lpDefault, // 同1(1)
LPTSTR lpReturnedString, // 同1(1)
INI文件的读写详解
INI文件读写 文章指数:0 CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。
int i; //i指向数组chSectionNames的某个位置,从0开始,顺序后移
int j=0; //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量
int count=0; //统计节的个数
//CString name;
//char id[20];
//在Ex1目录下的ex1.ini中创建一个Test节,并在该节中创建一个键id,其值为xym
//若Ex1.ini文件与读写该文件的程序在同一个目录下,则上面语句也可写为:
::WritePrivateProfileString("Test","id","xym",".\\ex1.ini");
::GetPrivateProfileSectionNames(chSectionNames,2048,".\\ex1.ini");
for(i=0;i<2048;i++,j++)
{
if(chSectionNames[0]=='\0')
break; //如果第一个字符就是0,则说明ini中一个节也没有
LPCTSTR lpKeyName, // 键名,读取该键的值
LPCTSTR lpDefault, // 若指定的键不存在,该值作为读取的默认值
LPTSTR lpReturnedString, // 一个指向缓冲区的指针,接收读取的字符串
DWORD nSize // 指定lpReturnedString指向的缓冲区的大小
DWORD GetPrivateProfileSectionNames(
LPTSTR lps
zReturnBuffer, // 指向一个缓冲区,用来保存返回的所有节名
DWORD nSize, // 参数lpszReturnBuffer的大小
由此可见,要删除某个节,只需要将WriteProfileString第二个参数设为NULL即可。而要删除某个键,则只需要将该函数的第三个参数设为 NULL即可。这是删除系统的win.ini中的节或键,类似的,要删除自己定义的ini文件中的节或键,也可做相同的操作。
如:
::WriteProfileString("Test",NULL,NULL); //删除win.ini中的Test节
LPCTSTR lpKeyName, // 同上
INT nDefault // 若指定的键名不存在,该值作为读取的默认值
)
如使用以下语句写入了年龄信息:
::WritePro
fileString("Test","age","25");
LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串
LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节
LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键
)
)
如:
CString str;
::GetProfileString("Test","id","Error",str.GetBuffer(20),20);
(2) 读取整数
UINT GetProfileInt(
LPCTSTR lpAppName, // 同上
面的字符组成一个节名。若连续找到两个'\0'字符,则统计结束*/
int CTestDlg::CalcCount(void)
{
TCHAR chSectionNames[2048]={0}; //所有节名组成的字符数组
char * pSectionName; //保存找到的某个节名字符串的首地址
LPCTSTR lpAppName, // 同上
LPCTSTR lpKeyName, // 同上
INT nDefault, // 若指定的键名不存在,该值作为读取的默认值
LPCTSTR lpFileName // 同上
)
如使用以下语句写入了年龄信息:
DWORD nSize, // 同1(1)
LPCTSTR lpFileName // 读取信息的文件名。若该ini文件与程序在同一个目录下,也可使用相
//对路径,否则需要给出绝度路径。
)
如:
CString str;
::GetPrivateProfileString("Test","id","Error",str.GetBuffer(20),20,".\\ex1.ini");
ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。
LPCTSTR lpString, // 同上
LPCTSTR lpFileName // 要写入的文件的文件名。若该ini文件与程序在同一个目录下,也可使用相对
//路径,否则需要给出绝度路径。
)
如:
::WriteProfileString("Test","id","xym");
//在win.ini中创建一个Test节,并在该节中创建一个键id,其值为xym
::WritePrivateProfileString("Test","id","xym","d:\\vc\\Ex1\\ex1.ini");
LPCTSTR lpFileName // 文件名,若该ini文件与程序在同一个目录下,
//也可使用相对路径,否则需要给出绝度路径
)
下面的是用来统计一个ini文件中共有多少个节的函数,当然,如果需要同时找到每个节中的各个键及其值,根据找到节名就可以很容易的得到了。
::WriteProfileString("Test","id",NULL); //删除win.ini中的id键
::WritePrivateProfileString("Test",NULL,NULL,".\\ex1.ini"); //删除ex1.ini中的Test节
或:
::GetPrivateProfileString("Test","id","Error",str.GetBuffer(20),20,"d:\\vc\\Ex1\\ex1.ini");
(2) 读取整数
UINT GetPrivateProfileInt(
LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键
)
2. 把信息写入自己定义的.ini文件
BOOL WritePrivateProfileString(
LPCTSTR lpAppName, // 同上
LPCTSTR lpKeyName, // 同上
需要注意的是,C系列的语言中,转义字符'\\'表示反斜线'\'。另外,当使用相对路径时,\\前的.号不能丢掉了。
二、从ini文件中读取数据的函数
1、从系统的win.ini文件中读取信息
(1) 读取字符串
DWORD GetProfileString(
LPCTSTR lpAppName, // 节名
int age;
age=::GetPrivateProfileInt("Test","age",0,".\\ex1.ini");
三、 删除键值或节