搜档网
当前位置:搜档网 › VC中读写ini配置文件

VC中读写ini配置文件

VC中读写ini配置文件
VC中读写ini配置文件

VC中用函数读写ini文件的方法

ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。

一、向ini文件中写入信息的函数

1. 把信息写入系统的win.ini文件

BOOL WriteProfileString(

LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串

LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节

LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键

)

2. 把信息写入自己定义的.ini文件

BOOL WritePrivateProfileString(

LPCTSTR lpAppName, // 同上

LPCTSTR lpKeyName, // 同上

LPCTSTR lpString, // 同上

LPCTSTR lpFileName // 要写入的文件的文件名。若该ini文件与程序在同一个目录下,也可使用相对

//路径,否则需要给出绝度路径。

)

如:

::WriteProfileString("Test","id","xym");

//在win.ini中创建一个Test节,并在该节中创建一个键id,其值为xym

::WritePrivateProfileString("Test","id","xym","d://vc//Ex1//ex1.i ni");

//在Ex1目录下的ex1.ini中创建一个Test节,并在该节中创建一个键id,其值为xym

//若Ex1.ini文件与读写该文件的程序在同一个目录下,则上

面语句也可写为:

::WritePrivateProfileString("Test","id","xym",".//ex1.ini");

需要注意的是,C系列的语言中,转义字符'//'表示反斜线'/'。另外,当使用相对路径时,//前的.号不能丢掉了。

二、从ini文件中读取数据的函数

1、从系统的win.ini文件中读取信息

(1) 读取字符串

DWORD GetProfileString(

LPCTSTR lpAppName, // 节名

LPCTSTR lpKeyName, // 键名,读取该键的值

LPCTSTR lpDefault, // 若指定的键不存在,该值作为读取的默认值

LPTSTR lpReturnedString, // 一个指向缓冲区的指针,接收读取的字符串

DWORD nSize // 指定lpReturnedString指向的缓冲区的大小

)

如:

CString str;

::GetProfileString("Test","id","Error",str.GetBuffer(20),20);

(2) 读取整数

UINT GetProfileInt(

LPCTSTR lpAppName, // 同上

LPCTSTR lpKeyName, // 同上

INT nDefault // 若指定的键名不存在,该值作为读取的默认值

)

如使用以下语句写入了年龄信息:

::WriteProfileString("Test","age","25");

//在win.ini中创建一个Test节,并在该节中创建一个键age,其值为25

则可用以下语句读取age键的值:

int age;

age=::GetProfileInt("Test","age",0);

2、从自己的ini文件中读取信息

(1) 读取字符串

DWORD GetPrivateProfileString(

LPCTSTR lpAppName, // 同1(1)

LPCTSTR lpKeyName, // 同1(1)

LPCTSTR lpDefault, // 同1(1)

LPTSTR lpReturnedString, // 同1(1)

DWORD nSize, // 同1(1)

LPCTSTR lpFileName // 读取信息的文件名。若该ini文件与程序在同一个目录下,也可使用相

//对路径,否则需要给出绝度路径。

)

如:

CString str;

::GetPrivateProfileString("Test","id","Error",str.GetBuffer(20),2 0,".//ex1.ini");

或:

::GetPrivateProfileString("Test","id","Error",str.GetBuffer(20),2 0,"d://vc//Ex1//ex1.ini");

(2) 读取整数

UINT GetPrivateProfileInt(

LPCTSTR lpAppName, // 同上

LPCTSTR lpKeyName, // 同上

INT nDefault, // 若指定的键名不存在,该值作为读取的默认值

LPCTSTR lpFileName // 同上

)

如使用以下语句写入了年龄信息:

::WritePrivateProfileString("Test","age","25",".//ex1.ini");

//在ex1.ini中创建一个Test节,并在该节中创建一个键age,其值为25

则可用以下语句读取age键的值:

int age;

age=::GetPrivateProfileInt("Test","age",0,".//ex1.ini");

三、删除键值或节

回顾一下WriteProfileString函数的说明

BOOL WriteProfileString(

LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串

LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节

LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键

)

由此可见,要删除某个节,只需要将WriteProfileString 第二个参数设为NULL即可。而要删除某个键,则只需要将该函数的第三个参数设为NULL即可。这是删除系统的win.ini中的节或键,类似的,要删除自己定义的ini文件中

的节或键,也可做相同的操作。

如:

::WriteProfileString("Test",NULL,NULL); //删除win.ini中的Test节

::WriteProfileString("Test","id",NULL); //删除win.ini中的id键

::WritePrivateProfileString("Test",NULL,NULL,".//ex1.ini"); //删除ex1.ini中的Test节

::WritePrivateProfileString("Test","id",NULL,".//ex1.ini"); //删除ex1.ini中的id键

四、如何判断一个ini文件中有多少个节

要判断一个ini文件中有多少个节,最简单的办法就是将所有的节名都找出来,然后统计节名的个数。而要将所有的节名找出来,使用GetPrivateProfileSectionNames函数就可以了,其原型如下:

DWORD GetPrivateProfileSectionNames(

LPTSTR lpszReturnBuffer, // 指向一个缓冲区,用来

保存返回的所有节名

DWORD nSize, // 参数lpszReturnBuffer的大小

LPCTSTR lpFileName // 文件名,若该ini文件与程序在同一个目录下,

//也可使用相对路径,否则需要

给出绝度路径

)

下面的是用来统计一个ini文件中共有多少个节的函数,当然,如果需要同时找到每个节中的各个键及其值,根据找到节名就可以很容易的得到了。

/*统计共有多少个节

节名的分离方法:若chSectionNames数组的第一字符是'/0'字符,则表明

有0个节。否则,从chSectionNames数组的第一个字符开始,顺序往后找,

直到找到一个'/0'字符,若该字符的后继字符不是'/0'字符,则表明前

面的字符组成一个节名。若连续找到两个'/0'字符,则统计结束*/

int CTestDlg::CalcCount(void)

{

TCHAR chSectionNames[2048]={0}; //所有节名组成的字符数组

char * pSectionName; //保存找到的某个节名字符串的首地址int i; //i指向数组chSectionNames的某个位置,从0开始,顺序后移

int j=0; //j用来保存下一个节名字符串的首地址相对于当前i的位置偏移量

int count=0; //统计节的个数

//CString name;

//char id[20];

::GetPrivateProfileSectionNames(chSectionNames,2048,".//ex1. ini");

for(i=0;i<2048;i++,j++)

{

if(chSectionNames[0]=='/0')

break; //如果第一个字符就是0,则说明ini中一个节也没有

if(chSectionNames[i]=='/0')

{

pSectionName=&chSectionNames[i-j]; //找到一个0,则说明从这个字符往前,减掉j个偏移量,

//就是一个节名的首地址

j=-1; //找到一个节名后,j的值要还原,以统计下一个节名地址的偏移量

//赋成-1是因为节名字符串的最后一个字符0是终止符,不能作为节名

//的一部分

/*::GetPrivateProfileString(pSectionName,"id","Error",id,2 0,".//ex1.ini");

name.Format("%s",id);*/

//在获取节名的时候可以获取该节中键的值,前提是我们知道该节中有哪些键。

AfxMessageBox(pSectionName); //把找到的显示出来

if(chSectionNames[i+1]==0)

{

break; //当两个相邻的字符都是0时,则所有的节名都已找到,循环终止

}

}

}

return count;

}

/////////////////////////////////////////////////////////////////////////////////////////////

/////////////////////////////////////

/////////////////////////////////////////////////////////////////

在VC程序中利用系统提供的GetPrivateProfileString及WritePrivateProfileString函数直接读写系统配置ini文件(指定目录下的Ini文件)

假设在当前目录下有一个文件名为Tets.ini的文件

用于保存用户名和密码

文件格式如下:

[Section1]

Item1=huzhifeng

Item2=1234565

1.写INI文件

void CINI_File_TestDlg::OnButtonWrite()

{

// TODO: Add your control notification handler code here

CString strSection = "Section1";

CString strSectionKey = "Item1";

char strBuff[256];

CString strValue = _T("");

CString strFilePath;

strFilePath=GetCurrentDirectory(256,strBuff); //获取当前路径

strFilePath.Format("%s//Test.ini",strBuff);

GetDlgItemText(IDC_EDIT_NAME,strValue); //获取文本框内容:即姓名

WritePrivateProfileString(strSection,strSectionKey,strValue,str FilePath); //写入ini文件中相应字段

strSectionKey="Item2";

GetDlgItemText(IDC_EDIT_PASSWORD,strValue); //获取文本框内容:即密码

WritePrivateProfileString(strSection,strSectionKey,strValue,str FilePath);

}

2.读INI文件内容

void CINI_File_TestDlg::OnButtonRead()

{

// TODO: Add your control notification handler code here

CString strSection = "Section1";

CString strSectionKey = "Item1";

char strBuff[256];

CString strValue = _T("");

CString strFilePath;

strFilePath=GetCurrentDirectory(256,strBuff); //获取当前路径

strFilePath.Format("%s//Test.ini",strBuff);

GetPrivateProfileString(strSection,strSectionKey,NULL,strBuff ,80,strFilePath); //读取ini文件中相应字段的内容

strValue=strBuff;

SetDlgItemText(IDC_EDIT_NAME,strValue);

strSectionKey="Item2";

GetPrivateProfileString(strSection,strSectionKey,NULL,strBuff ,80,strFilePath);

strValue=strBuff;

SetDlgItemText(IDC_EDIT_PASSWORD,strValue);

UpdateData(FALSE); }

INI文件读写

INI文件读写.txt男人的话就像老太太的牙齿,有多少是真的?!问:你喜欢我哪一点?答:我喜欢你离我远一点!执子之手,方知子丑,泪流满面,子不走我走。诸葛亮出山前,也没带过兵!凭啥我就要工作经验?INI文件读写文章指数:0 CSDN Blog推出文章指数概念,文章指数是对Blog文章综合评分后推算出的,综合评分项分别是该文章的点击量,回复次数,被网摘收录数量,文章长度和文章类型;满分100,每月更新一次。 ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。 一、向ini文件中写入信息的函数 1. 把信息写入系统的win.ini文件 BOOL WriteProfileString( LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串 LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节 LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键 ) 2. 把信息写入自己定义的.ini文件 BOOL WritePrivateProfileString( LPCTSTR lpAppName, // 同上 LPCTSTR lpKeyName, // 同上 LPCTSTR lpString, // 同上 LPCTSTR lpFileName // 要写入的文件的文件名。若该ini文件与程序在同一个目录下,也可使用相对 //路径,否则需要给出绝度路径。 ) 如: ::WriteProfileString("Test","id","xym"); //在win.ini中创建一个Test节,并在该节中创建一个键id,其值为xym ::WritePrivateProfileString("Test","id","xym","d:\\vc\\Ex1\\ex1.ini"); //在Ex1目录下的ex1.ini中创建一个Test节,并在该节中创建一个键id,其值为xym //若Ex1.ini文件与读写该文件的程序在同一个目录下,则上面语句也可写为: ::WritePrivateProfileString("Test","id","xym",".\\ex1.ini"); 需要注意的是,C系列的语言中,转义字符'\\'表示反斜线'\'。另外,当使用相对路径时,\\前的.号不能丢掉了。 二、从ini文件中读取数据的函数

配置文件使用说明

(1)报警切除功能 C:\windows\cas2000ops.ini中 [CutAlarm] Enable=0 说明:Enable置0时无报警切除功能,置1时有报警切除功能。默认为0 ( 2 ) 语音报警功能 C:\ windows\ Keyboard.ini中 [Keyboard] SelfSound=1 SoundFileName=ALARM.wav 说明: a)SelfSound项置0时,无语音报警功能,置1时有语音报警功能。默认为0 b)语音文件路径应放在操作员站的Start路径下,SoundFileName用户可以自 定义,默认为ALARM.wav。 (3)在线查询时长 C:\windows\cas2000ops.ini中 [TimeLength] show24hour=1; show60hour=1 说明:show24hour置1时,实时趋势时间段有24小时的时间段,置0时没有show60hour同上。 (4)PID调节幅值更改 操作员安装路径\config\ PID_ADJUST.ini [PID点名] SLOW=0 FAST=0 说明:此调节是按绝对值调节,不是按百分比调节; SLOW与FAST项需为非零值,且FAST值〉SLOW值 默认情况下没有文件PID_ADJUST.ini,需要用户自定义。 (5)点详细窗口风格 C:\windows\cas2000ops.ini中 [TagCurve] Mode=0 说明:Mode置0为浮动窗口风格,置1位对话框。默认为0。 (6)操作员站工程师台菜单项中综合趋势窗口和开关趋势窗口菜单C:\windows\cas2000ops.ini中 [ExtraTrendMenu] Mode=0 说明:Mode置0有综合趋势窗口和开关趋势窗口菜单,置1无。默认为

ccproxy ini配置文件详解

[Info] Language=ChineseGB charset=gb2312 Author=Youngzsoft [String] HOMEPAGE=https://www.sodocs.net/doc/e14591680.html,/ BUYNOW=https://www.sodocs.net/doc/e14591680.html,/user.htm ;Configuration Dialog Configuration=设置 Protocol=协议 Local IP Address:=请选择本机局域网IP地址: Web Cached=网页缓存 Auto Startup=自动启动 Auto Hide=自动隐藏 Auto Detect=自动检测 Proxy services=代理服务 OK=确定 Cancel=取消 Advanced=高级 NT Service=NT服务 ;Dial Dial-up=拨号 Dial-up Entries=拨号列表 Dial-up User Name=拨号用户名 Dial-up Password=拨号密码 Idle disconnect minutes=拨号空闲断开时间(分钟) Enable Auto Dial-up=允许自动拨号 ;Log Log=日志 CCProxy can log every user's information. Please DON'T intercept user's mail without his/her permission.=CCProxy可以记录每位用户的信息。但未经用户允许,请不要截取他们的邮件。 Log session selection=日志事件选项 Request URL=访问网址 Mail Info=邮件信息 Outgoing Mails=已发送邮件 Maximum Lines=日志文件最大行数 Clear Logs=清除日志 Save Logs to File=保存日志文件至 Export Excel=输出Excel New Log Daily=每天生成新日志

ini文件的操作

delphi开发 ini文件使用详解:ini文件创建、打开、读取、写入操作。ini 文件常用作配置文件使用 (1)INI文件的结构: [节点] 关键字=值 注:INI文件允许有多个节点,每个节点又允许有多个关键字,“=”后面是该关键字的值(类型有串、整型数值和布尔值。其中字符串存贮在INI文件中时没有引号,布尔真值用1表示,布尔假值注释以分号“;”开头。 (2)INI文件的操作 1、在Interface的Uses节增加IniFiles; 2、在Var变量定义部分增加一行:inifile:Tinifile;然后,就可以对变量myinifile进行创建、写入等操作了。 procedureTForm1.FormCreate(Sender:TObject); var filename:string; begin filename:=ExtractFilePath(paramstr(0))+‘tmp.ini’; inifile:=TInifile.Create(filename); 或filename:=getcurrentdir+ 'tmp.ini '; 或inifile:=TInifile.Create(‘d:\tmp.ini’); 3、打开INI文件:inifile:=Tinifile.create('tmp.ini'); //文件必须存在 4、读取关键字的值: a:=inifile.Readstring('节点','关键字',缺省值);// string类型 b:=inifile.Readinteger('节点','关键字',缺省值);// integer类型 c:=inifile.Readbool('节点','关键字',缺省值);// boolean类型 edit1.text:=inifile.Readstring('程序参数,'用户',‘’); checkbox1.checked:=inifile.Readbool('程序参数,'用户',checkbox1.checked);// boolean类型 inifile.Readstring('程序参数,'用户',edit1.text); inifile.Readbool('程序参数,'用户',checkbox1.checked); 其中[缺省值]为该INI文件不存在该关键字时返回的缺省值。 5、写入INI文件: inifile.writestring('节点','关键字',变量或字符串值); inifile.writeinteger('节点','关键字',变量或整型值); inifile.writebool('节点','关键字',变量或True或False);

VC++操作INI配置文件的实现

VC++操作INI配置文件的实现 修改浏览权限| 删除 一.将信息写入.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_PATH,"c:\\stud\\student.ini"); 执行后strStudName 的值为:"张三",若前两个参数有误,其值为:"默认姓名". 3.读入整型值要用另一个WINAPI函数:

配置文件(ini)的读写

用系统函数读写ini配置文件 一INI文件基础 文件扩展名为ini的文件常用于操作系统、软件等初始化或进行参数设置。ini是initial的缩写。这类文件可以用文本编辑器(如记事本)打开、编辑。 文件格式 节/段sections [section] 参数/键名parameters name=value 注解comments 注解使用分号表示(;)。在分号后面的文字,直到该行结尾都全部为注解。 ;comment text 示例 如QQ安装目录下有一个kernelInfo.ini文件,里面的内容。 [kernel] version=788 packetname=QQPetKernel.EXE ini用途 编写软件的时候需要将一些初始化的信息写入到一个配置文件中,软件启动的时候从这个配置文件中读取这些初始化的信息。软件中的一些过程数据也需要保存到ini文件中。 现在软件大都将这些配置信息写到XML中,因为XML的树形描述层次结构性清晰。这就涉及到XML 的解析,可以自己写解析方法,也可以用第三方库(如TinyXML、CMarkup等)来解析XML。 更多类容可以参考https://www.sodocs.net/doc/e14591680.html,/u/5135093875 二应用程序的ini读写 系统提供给了读写ini文件的函数,都是以GetPrivateProfile开头的,常用的有下面3个。作一个简要介绍。 GetPrivateProfileString DWORD GetPrivateProfileString( LPCTSTR lpAppName,//points to section name段名 LPCTSTR lpKeyName,//points to key name键名 LPCTSTR lpDefault,//points to default string默认的键值,这个参数不能为 NULL。如果在ini文件中没有找到lpKeyName,就将赋值lpDefault,给lpReturnedString LPTSTR lpReturnedString,//points to destination buffer指向缓冲区的指针,用于保存键值 DWORD nSize,//size of destination buffer缓冲区的大小 LPCTSTR lpFileName//points to initialization filename ini文件的路径 ); 功能:读取对应段和键的值。 返回值: 返回复制到缓冲区的字符个数,并不包括字符串结尾的NULL。 如果lpAppName和lpKeyName都不为空,并且键值的长度大于了缓冲区的长度,那么就将键值切断,并在末尾添加’\0’字符,返回nSize-1。

详解 Desktop.ini 配置设置文件

详解 Desktop.ini 配置设置文件 ㈠、INI文件是什么 Desktop.ini是什么呢?首先,他是一种特殊的.ini文件。那么.ini文件是什么呢?配置设置文件!所以,Desktop.ini是一种特殊的,用来自定义文件夹相关信息的配置文件。默认情况下,他由系统创建,存在于该文件夹下,并具有系统、隐藏属性。 .INI文件是一种具有特定格式的纯文本文件。 Windows利用扩展名为.INI的文件保存Windows 及其应用程序的初始化信息。Windows 及其应用程序每次启动时,都会从相应的.INI文件中读取初始化设置信息,并据此进行配置。 Windows注册表是帮助Windows控制硬件、软件、用户环境和Windows界面的一套数据文件,注册表包含在Windows目录下两个文件system.dat和user.dat里,还有它们的备份system.da0和user.da0。通过Windows目录下的regedit.exe程序可以存取注册表数据库。在以前,在windows的更早版本(在Win95以前),这些功能是靠win.ini,system.ini和其他和应用程序有关联的.ini文件来实现的. 在windows操作系统家族中,system.ini和win.ini这两个文件包含了操作系统所有的控制功能和应用程序的信息,system.ini管理计算机硬件而win.ini管理桌面和应用程序。所有驱动、字体、设置和参数会保存在.ini文件中,任何新程序都会被记录在.ini文件中。这些记录会在程序代码中被引用。因为受win.ini和system.ini文件大小的限制,程序员添加辅助的.INI文件以用来控制更多的应用程序。举例来说,微软的Excel有一个office excel.ini文件,它包含着选项、设置、缺省参数和其他关系到Excel运行正常的信息。在system.ini和win.ini中只需要指出excel.ini的路径和文件名即可。 早在Dos和Win3.x的时代,大部分的应用程序都是采用了ini 文件(初始化文件)来保存一些配置信息,如设置路径,环境变量等。system.ini和win.ini控制着所有windows和应用程序的特征和存取方法,它在少数的用户和少数应用程序的环境中工作的很好。随着应用程序的数量和复杂性越来越大,则需要在.ini文件中添加更多的参数项。 这样下来,在一个变化的环境中,在应用程序安装到系统中后,每个人都会更改.ini文件。然而,没有一个人在删除应用程序后删除.ini文件中的相关设置,所以system.ini和win.ini这个两个文件会变的越来越大。每增加的内容会导致系统性能越来越慢。而且每次应用程序的升级都出现这样的难题:升级会增加更多的参数项但是从来不去掉旧的设置。而且还有一个明显的问题,一个.ini文件的最大尺寸是64KB。为了解决这个问题,软件商自己开始支持自己的.ini文件,然后指向特定的ini文件如win.ini和system.ini 文件。这样下来多个.ini文件影响了系统正常的存取级别设置。如果一个应用程序的.ini文件和WIN.INI 文件设置起冲突,究竟是谁的优先级更高呢? 注册表最初被设计为一个应用程序的数据文件相关参考文件,最后扩展成对于32位操作系统和应用程序包括了所有功能下的东东。注册表是一套控制操作系统外表和如何响应外来事件工作的文件。这些“事件”的范围从直接存取一个硬件设备到接口如何响应特定用户到应用程序如何运行等等。注册表因为它的目的和性质变的很复杂,它被设计为专门为32位应用程序工作,文件的大小被限制在大约40MB。利用一个功能强大的注册表数据库来统一集中地管理系统硬件设施,软件配置等信息,从而方便了管理,增强了系统的稳定性。最直观的一个实例就是,为什么windows下的不同用户可以拥有各自的个性化设置,如不同的墙纸,不同的桌面。这就是通过注册表来实现的。 有关win.ini和system.ini的语法和相关信息,请参与这里: https://www.sodocs.net/doc/e14591680.html,/s/blog_51a4af870100a2hs.html。

自制的一个读写INI文件的类

一个手工读写INI文件的类 Windows中有GetPrivateProfileString 和WritePrivateProfileString函数可以进行读写INI 配置文件,但这两个函数每取出一个数据,都要打开文件,在文件中进行搜索,这样处理的效率肯定会很慢,因此下面提供了一个将配置文件读入内存中的做法,这样做的好处是一次读取文件,快速搜索(使用Map映射)。可以将所有数据全部保存成字符串或者文件。 INI配置文件主要由四部分组成:组、键值、内容、注释和空行,下面给出一个例子文件进行说明 文件:E:\boot.ini [boot loader] ;这里是一个组,下面的所有配置数据隶属于该组 timeout=1 ;这里在等于好前面的是一个键值,等号后面的是一个内容 default=multi(0)disk(0)rdisk(0)partition(2)\WINNT;下面一行是一个空行 [operating systems];所有在';'后面的字符都属于注释,本程序不支持REM形式的注释multi(0)disk(0)rdisk(0)partition(2)\WINNT="Microsoft Windows 2000 Professional" /fastdetect;sadfkl; C:\="Microsoft Windows" 好了,知道了INI文件的结构,开始分析INI文件读入内存后应使用的数据结构。 一个INI文件可以看作是由一些组以及每个组下面的数据组成的,组是字符串形式的,而数据是一个比较复杂的对象。为了搜索的方便,所以这里采用了CMapStringToPtr来组织整个INI文件,这样的话可以由组的字符串方便地查询到该组中的数据 一个组下面的数据是由一些键值— 内容组成的映射关系,所以使用CMapStringToString 来组这这些数据是最好不过的选择了。 下面给出这个类的头文件和实现部分。给出之前简单介绍该类的用法: 读取上述E:\boot.ini文件: #include "cfgdata.h" CCfgData CfgData; //Load INI文件 CfgData.LoadCfgData("E:\\boot.ini"); CString str; long l=0; //设置当前组 CfgData.SetGroup("boot loader"); //读取long型数据到变量l CfgData.GetLongData("timeout",l); //读取字符串型数据到变量str CfgData.GetStrData("default",str);

Mysql-my.ini-配置文件详解

Mysql my.ini 配置文件详解 #BEGIN CONFIG INFO #DESCR: 4GB RAM, 只使用InnoDB, ACID, 少量的连接, 队列负载大#TYPE: SYSTEM #END CONFIG INFO # # 此mysql配置文件例子针对4G内存 # 主要使用INNODB #处理复杂队列并且连接数量较少的mysql服务器 # # 将此文件复制到/etc/https://www.sodocs.net/doc/e14591680.html,f 作为全局设置, # mysql-data-dir/https://www.sodocs.net/doc/e14591680.html,f 作为服务器指定设置 # (@localstatedir@ for this installation) 或者放入 # ~/https://www.sodocs.net/doc/e14591680.html,f 作为用户设置. # # 在此配置文件中, 你可以使用所有程序支持的长选项. # 如果想获悉程序支持的所有选项 # 请在程序后加上"--help"参数运行程序. # # 关于独立选项更多的细节信息可以在手册内找到 # # # 以下选项会被MySQL客户端应用读取. # 注意只有MySQL附带的客户端应用程序保证可以读取这段内容. # 如果你想你自己的MySQL应用程序获取这些值 # 需要在MySQL客户端库初始化的时候指定这些选项 # [client] #password = [your_password] port = @MYSQL_TCP_PORT@ socket = @MYSQL_UNIX_ADDR@ # *** 应用定制选项 *** # # MySQL 服务端 # [mysqld] # 一般配置选项 port = @MYSQL_TCP_PORT@ socket = @MYSQL_UNIX_ADDR@ # back_log 是操作系统在监听队列中所能保持的连接数, # 队列保存了在MySQL连接管理器线程处理之前的连接. # 如果你有非常高的连接率并且出现"connection refused" 报错, # 你就应该增加此处的值. # 检查你的操作系统文档来获取这个变量的最大值.

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");

DSA config.ini配置文件详解

来源媒体:网络 【相关专题】:善领DSA电子狗 【相关观点】:DSA config.ini配置文件详解 【相关搜索】:DSA config.ini DSA config.ini配置文件详解 DSA(善领)是车机很常用的软件,可代替电子狗对固定测速及常见流动测速点进行预报,在WINCE系统下,我们可以对软件进行详细的设置,而我们需要改的,就是其中配置的文件:config.ini。 一、DSA各种个性化参数设置。 找到DSA文件夹下config.ini 文件,以记事本方式打开,修改DSA各种设置参数。speedlimit=120 全局最大限速值,因为国内的高速公路最高限速为120KM/H,建议把最大限速值设置成120。 speed_compensation=4 速度补偿值,如遇到实际车速与DSA界面显示车速不一致时可以进行设置(可以正负值)。通常情况下,GPS测出的速度比仪表盘显示的速度低,可以根据仪表盘显示的速度进行高速,在这里,我们假设GPS显示的速度比实际车速低3-4公里左右,所以为正4。 auto_select_ui={8,18} 日、夜换肤设置,表示8点-18点使用白天皮肤,其他时间使用夜间皮肤。 always_show_overlay=2 是否永久显示速度悬浮窗,1为永久显示,2为DSA为后台运行时显示,0为不显示,一般选择2比较合适,如果您的导航软件已经有车速显示,可以选择为0。 reportradarerror=0 是否播报雷达异常,如果您没有在导航上连接雷达组件(即内置电子狗),

请选择为0。 fullscreen=0 是否自动全屏 voice_style=0 语音输出方式,一般为1,如果您的声音不正常,可以在这里修改为0-9数值。 auto_loadnavi=0 是否DSA启动时自动加载地图,可以设置成0或1。设置为0时,手动加载地图,设置为1时,启动DSA以后自动进入导航界面。 loadnavi_style=1 加载地图方式。当DSA用作多图导航时,是选择第一个地图自动弹出就填1,第二个地图则为2。 auto_show_image=1 DSA空闲时是否自动播放图片 plate_number=吉C·XXXXX 车牌号显示(可以写上自己的车牌号,或各种个性的文字,注意车牌号中间的点一定要有,否则DSA启动时报错) skin_path= 这是皮肤路径选择{夜晚} 二、DSA文件下“MyCar”文件夹作用 此文件夹主要存放各类汽车标志,需要手动在DSA界面右内里车标显示处点击,直到出现自己的汽车标志。如果不喜欢其他车标,可以将其他汽车标志删除,只留下自己的标志。 三、DSA文件下“MyFavor”文件夹作用。 此文件夹可以存放自己喜爱的图片,当“auto_show_image=1”设置为1时,则自动播放您存放的图片。 四、DSA文件下“RES_800x480”文件夹作用 此文件夹主要存放日夜皮肤,命名格式为“day”文件夹及“night”文件夹,(主程序已经集成了夜间皮肤,需要更换个性皮肤的自己搜索下载。下载后将重命名的“day"和“night”文件夹复制到DSA文件下“RES_800x480”文件夹下即可,同时,按照上面的“auto_select_ui= {8,18}”

CFG、INI配置文件读写C程序

CFG、INI配置文件读写C程序 /******************************************************************** * 文件名称: INIFileOP.C * 文件标识: * 其它说明: INI文件的操作 * 当前版本: V1.0 * 完成日期: ********************************************************************* */ #include #include #include /*#undef VOS_WINNT*/ #define VOS_WINNT #ifdef VOS_WINNT #define INIFileTstmain main #endif #define SuccessRet 1; #define FailedRet 0; #define MAX_CFG_BUF 512 #define CFG_OK #define CFG_SECTION_NOT_FOUND-1 #define CFG_KEY_NOT_FOUND -2 #define CFG_ERR -10 #define CFG_ERR_FILE -10 #define CFG_ERR_OPEN_FILE -10 #define CFG_ERR_CREATE_FILE -11 #define CFG_ERR_READ_FILE -12 #define CFG_ERR_WRITE_FILE -13 #define CFG_ERR_FILE_FORMAT -14 #define CFG_ERR_SYSTEM -20

ini配置文件

C++操作.ini配置文件的API 2009年12月09日星期三上午 11:05 概述 在程序中经常要用到设置或者其他少量数据的存盘,以便程序在下一次执行的时候可以使用,比如说保存本次程序执行时窗口的位置、大小、一些用户设置的数据等等,在 Dos 下编程的时候,我们一般自己产生一个文件,由自己把这些数据写到文件中,然后在下一次执行的时候再读出来使用。在 Win32 编程中当然你也可以这样干,但 Windows 已经为我们提供了两种方便的办法,那就是使用注册表或者 ini 文件(Profile)来保存少量数据。本文中先介绍一下 .ini 文件的使用。 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,它们是: GetProfileInt - 从 Win.ini 文件的某个 Section 取得一个 key 的整数值,它的原形是: GetProfileInt( LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址 LPCTSTR lpKeyName, // 指向包含 Key 名称的字符串地址 INT nDefault // 如果 Key 值没有找到,则返回缺省的值是多少 ); 如果 Key 值没有找到的话,返回值是 nDefault 指定的缺省值,如果 Key 中的值是负数,则返回 0,如果 Key 指定的是数字和字符串的混合,则返回数字部分的值,比如说 x=1234abcd,则返回 1234 GetProfileString - 从 Win.ini 文件的某个 Section 取得一个 key 的字符串,它的原形是: GetProfileString( LPCTSTR lpAppName, // 指向包含 Section 名称的字符串地址 LPCTSTR lpKeyName, // 指向包含 Key 名称的字符串地址

C++ INI配置文件

使用INI配置文件 在BCB中有个TIniFile类,它提供了对INI文件的操作,INI文件一种通用的配置文件格式它也象注册表一样分键和数据项,下面是一个INI配置文件的内容,它有一个键LastConfig,在这个键下有一个数据项DefaultDit,在数据项后面就是这个数据项的值。[LastConfig] DefaultDir=E:\xxx TIniFile类有几个常用的方法给大家介绍一下: __fastcall TIniFile(const AnsiString FileName) : Inifiles::TCustomIniFile(FileName) { } 这个方法创建一个INI对象,如果FileName指定的文件名不存在则自动生成此文件,FileName可以用全路径,指定INI文件的地点,如果只有文件名没有路径,这个函数将到Windows系统路径下去打开或创建。(WIN9X是Windows目录,NT和2000是WINNT目录) bool __fastcall SectionExists(const AnsiString Section); 这个方法判断是否存在Section这个键。 virtual AnsiString __fastcall ReadString(const AnsiString Section, const AnsiString Ident, const AnsiString Default); 这个方法从INI文件中读取一个字符串,Section是指定的键,Ident是指定键下的数据项Default是如果这个项不存在的时候的默认值。 virtual void __fastcall WriteString(const AnsiString Section, const AnsiString Ident, const AnsiString Value); 这个方法是向INI文件中写入一个字符串,Senction是指定的键,Ident是指定的数据项,Value是要写入的数据。同TRegistry一样,TIniFile类还提供了读取整型、布尔型,二进制等数据类型的读写方法,大家看看联机帮助就可以了,用法基本一样。下面就那上面的INI 文件为例来说明一下如何有INI文件来保存配置信息和如何从INI文件中读取数据。 下面的例子是如何从一个INI文件中读取配置,此配置文件保存在应用程序的目录下,如果没有配置,则取程序所在路径为默认值。 #include void __fastcall ReadConfig () { //读取配置, TIniFile * regKey; AnsiString ExePath = ExtractFileName( ParamStr (0)); regKey = new TIniFile ( ExePath + "TrimTxt.ini"); DefaultDir=regKey->ReadString("LastConfig","DefaultDir",ExePath ); delete regKey; } 下面的例子说明如何将信息写入INI文件

vc读写配置文件方法

vc 用函数读写INI配置文件 ini文件(即Initialization file),这种类型的文件中通常存放的是一个程序的初始化信息。ini文件由若干个节(Section)组成,每个Section由若干键(Key)组成,每个Key可以赋相应的值。读写ini文件实际上就是读写某个的Section中相应的Key的值,而这只要借助几个函数即可完成。 一、向ini文件中写入信息的函数 1. 把信息写入系统的win.ini文件 BOOL WriteProfileString( LPCTSTR lpAppName, // 节的名字,是一个以0结束的字符串 LPCTSTR lpKeyName, // 键的名字,是一个以0结束的字符串。若为NULL,则删除整个节 LPCTSTR lpString // 键的值,是一个以0结束的字符串。若为NULL,则删除对应的键 ) 2. 把信息写入自己定义的.ini文件 BOOL WritePrivateProfileString( LPCTSTR lpAppName, // 同上 LPCTSTR lpKeyName, // 同上 LPCTSTR lpString, // 同上 LPCTSTR lpFileName // 要写入的文件的文件名。若该ini文件与程序在同一个目录下,也可使用相对 //路径,否则需要给出绝度路径。 ) 如: ::WriteProfileString("Test","id","xym"); //在win.ini中创建一个Test节,并在该节中创建一个键id,其值为xym ::WritePrivateProfileString("Test","id","xym","d:\\vc\\Ex1\\ex1.ini" ); //在Ex1目录下的ex1.ini中创建一个Test节,并在该节中创建一个键id,其值为xym //若Ex1.ini文件与读写该文件的程序在同一个目录下,则上面语句也可写为:::WritePrivateProfileString("Test","id","xym",".\\ex1.ini"); 需要注意的是,C系列的语言中,转义字符'\\'表示反斜线'\'。另外,当使用相对路径时,\\前的.号不能丢掉了。 二、从ini文件中读取数据的函数 1、从系统的win.ini文件中读取信息 (1) 读取字符串 DWORD GetProfileString(

c#ini配置文件的读写操作

INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打工,主 要存放的是用户所做的选择或系统的各种参数. INI文件其实并不是普通的文本文件.它有自己的结构.由若干段落(SECTION)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键字(KEYWORD)和一个 等号,等号右边就是关键字的值(VALUE).例如: [Section1] KeyWord1 = Value1 KeyWord2 = Value2 ... [Section2] KeyWord3 = Value3 KeyWord4 = Value4 我现在介绍的是系统处理INI的方法.虽然C#中没有,但是在"kernel32.dll"这个文件 中有Win32的API函数--WritePrivateProfileString()和GetPrivateProfileString() C#声明INI文件的写操作函数WritePrivateProfileString(): [DllImport( "kernel32" )] private static extern long WritePrivateProfileString ( string section ,string key , s tring val , string filePath ) ; 参数说明:section:INI文件中的段落;key:INI文件中的关键字;val:INI文件 中关键字的数值;filePath:INI文件的完整的路径和名称。 C#申明INI文件的读操作函数GetPrivateProfileString(): [DllImport("kernel32")] private static extern int GetPrivateProfileString ( string section , string key , string def , StringBuilder retVal , int size , string filePath ) ; 参数说明:section:INI文件中的段落名称;key:INI文件中的关键字;def:无法读取时候时候的缺省数值;retVal:读取数值;size:数值的大小;filePath:INI文件的完整路径和名称。 下面是一个读写INI文件的类: public class INIClass { public string inipath; [DllImport("kernel32")] private static extern long WritePrivateProfileString(string section,string key,strin g val,string filePath); [DllImport("kernel32")] private static extern int GetPrivateProfileString(string section,string key,string de f,StringBuilder retVal,int size,string filePath); ///

///构造方法 ///

相关主题