一 背景

1 ini文件介绍

.ini 文件是Initialization File的缩写,即初始化文件。

除了windows现在很多其他操作系统下面的应用软件也有.ini文件,用来配置应用软件以实现不同用户的要求。一般不用直接编辑这些.ini文件,应用程序的图形界面即可操作以实现相同的功能。它可以用来存放软件信息,注册表信息等。

2 ini文件格式

INI文件由节、键、值组成。

  [section]

参数(键=值)

name=value

下面是一个ini文件的例子

[Section1 Name]   

KeyName1=value1   

KeyName2=value2   

...   

[Section2 Name]   

KeyName21=value21   

KeyName22=value22   

其中:[Section1 Name]用来表示一个段落。因为INI文件可能是项目中共用的,所以使用[Section Name]段名来区分不同用途的参数区。例如:[Section1 Name]表示传感器灵敏度参数区;[Section2 Name]表示测量通道参数区等等。

注解:使用分号表示(;)。在分号后面的文字,直到该行结尾都全部为注解。

二 Qt写ini文件

  1.  
    #include <QtCore/QCoreApplication>
  2.  
    #include <QSettings>
  3.  
    int main(int argc, char *argv[])
  4.  
    {
  5.  
    QCoreApplication a(argc, argv);
  6.  
    //Qt中使用QSettings类读写ini文件
  7.  
    //QSettings构造函数的第一个参数是ini文件的路径,第二个参数表示针对ini文件,第三个参数可以缺省
  8.  
    QSettings *configIniWrite = new QSettings("hahaya.ini", QSettings::IniFormat);
  9.  
    //向ini文件中写入内容,setValue函数的两个参数是键值对
  10.  
    //向ini文件的第一个节写入内容,ip节下的第一个参数
  11.  
    configIniWrite->setValue("/ip/first", "192.168.0.1");
  12.  
    //向ini文件的第一个节写入内容,ip节下的第二个参数
  13.  
    configIniWrite->setValue("ip/second", "127.0.0.1");
  14.  
    //向ini文件的第二个节写入内容,port节下的第一个参数
  15.  
    configIniWrite->setValue("port/open", "2222");
  16.  
    //写入完成后删除指针
  17.  
    delete configIniWrite;
  18.  
     
  19.  
    return a.exec();
  20.  
    }

运行程序后,打开程序目录下的hahaya.ini文件,结果如下图所示:

三 Qt读ini文件

  1.  
    #include <QtCore/QCoreApplication>
  2.  
    #include <QSettings>
  3.  
    #include <QString>
  4.  
    #include <QDebug>
  5.  
    int main(int argc, char *argv[])
  6.  
    {
  7.  
    QCoreApplication a(argc, argv);
  8.  
     
  9.  
    QSettings *configIniRead = new QSettings("hahaya.ini", QSettings::IniFormat);
  10.  
    //将读取到的ini文件保存在QString中,先取值,然后通过toString()函数转换成QString类型
  11.  
    QString ipResult = configIniRead->value("/ip/second").toString();
  12.  
    QString portResult = configIniRead->value("/port/open").toString();
  13.  
    //打印得到的结果
  14.  
    qDebug() << ipResult;
  15.  
    qDebug() << portResult;
  16.  
    //读入入完成后删除指针
  17.  
    delete configIniRead;
  18.  
    return a.exec();
  19.  
    }

程序运行截图:

转自:https://blog.csdn.net/qiurisuixiang/article/details/7760828

Qt读写ini文件的更多相关文章

  1. Qt对ini文件的读写

    研究了以下Qt下ini文件的读写,不废话,上干货. 写入ini文件 WriteIni.cpp void WriteIni::writeSettings() { QSettings settings(& ...

  2. QT读写ini配置文件

        /********下面是写ini文件*************************/     //Qt中使用QSettings类读写ini文件     //QSettings构造函数的第一 ...

  3. c# 利用动态库DllImport("kernel32")读写ini文件(提供Dmo下载)

    c# 利用动态库DllImport("kernel32")读写ini文件 自从读了设计模式,真的会改变一个程序员的习惯.我觉得嘛,经验也可以从一个人的习惯看得出来,看他的代码编写习 ...

  4. VB读写INI文件的四个函数以及相关API详细说明

    WritePrivateProfileString函数说明  来源:http://blog.csdn.net/wjb9921/article/details/2005000 在我们写的程序当中,总有一 ...

  5. C# 读写INI 文件

    INI 格式: [Section1] KeyWord1 = Value1 KeyWord2 = Value2 ... [Section2] KeyWord3 = Value3 KeyWord4 = V ...

  6. WIN32读写INI文件方法

      在程序中经常要用到设置或者其他少量数据的存盘,以便程序在下一次执行的时候可以使用,比如说保存本次程序执行时窗口的位置.大小.一些用户设置的 数据等等,在 Dos 下编程的时候,我们一般自己产生一个 ...

  7. 读写ini文件

    C# 使用文件流来读写ini文件 背景 之前采用ini文件作为程序的配置文件,觉得这种结构简单明了,配置起来也挺方便.然后操作方式是通过WindowsAPI,然后再网上找到一个基于WindowsAPI ...

  8. 在 WinCe 平台读写 ini 文件

    在上篇文章开发 windows mobile 上的今日插件时,我发现 wince 平台上不支持例如 GetPrivateProfileString 等相关 API 函数.在网络上我并没有找到令我满意的 ...

  9. Windows中读写ini文件

    .ini 文件是Initialization File的缩写,即初始化文件,是windows的系统配置文件所采用的存储格式,来配置应用软件以实现不同用户的要求.配置文件有很多种如ini配置文件,XML ...

随机推荐

  1. BZOJ.3585.mex(线段树)

    题目链接 题意:多次求区间\(mex\). 考虑\([1,i]\)的\(mex[i]\),显然是单调的 而对于\([l,r]\)与\([l+1,r]\),如果\(nxt[a[l]]>r\),那么 ...

  2. C++ 指针悬挂和赋值操作符的重载,拷贝构造函数实现

    指针悬挂: 问题:使用new申请的内存内存空间无法访问,也无法释放. 原因:直接对指向new申请的存储空间的指针变量进行赋值修改 后果:失去了原来的地址,原来的空间无法访问也无法释放,造成内存泄漏 还 ...

  3. C++函数模版的简单使用

    模版算是C++的独有特性吧,也算是C++中比较难的地方,我平时开发的时候用的非常少,或者几乎没有用到,需要模版的地方是能看懂框架中相关的代码: 模版函数相对还是很简单的,引入模版的目的在于代码的重用: ...

  4. 20个有用的linux命令行技巧

    20 Unix Command Line Tricks – Part I http://www.cyberciti.biz/open-source/command-line-hacks/20-unix ...

  5. C# DES (ECB模式) 加密解密 --单倍长

    加密:  调用时: Encrypt_DES16("2AF349243535BCD3", "1111111111111111"); public static s ...

  6. Hessian学习总结(二)——使用hessian上传文件

    hessian较早版本通过 byte[] 进行文件传输:4.0之后支持 InputStream 作为参数或返回值进行传输. 注意:hessian会读取整个文件,如果文件过大,会导致JVM内存溢出.可以 ...

  7. android:碎片的生命周期

    和活动一样,碎片也有自己的生命周期,并且它和活动的生命周期实在是太像了,我相 信你很快就能学会,下面我们马上就来看一下. 4.3.1    碎片的状态和回调 还记得每个活动在其生命周期内可能会有哪几种 ...

  8. Java知识回顾 (4)Java包装类

    一. Java Number 一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等. 然而,在实际开发过程中,我们经常会遇到需要使用对象,而不是内置 ...

  9. app v2界面

             相比v1要流畅了很多

  10. C#调试心经

    我们在做程序开发时,难免会遇到错误异常.如何快速地找到出错的地方.分析错误的原因以及找到解决问题的方案,是许多初级程序员困扰的问题,这也正是经验的宝贵之处.下面我将简单介绍在Visual Studio ...