ini 配置文件使用方法
来源:互联网 发布:tomcat 域名绑定 端口 编辑:程序博客网 时间:2024/06/04 23:34
本博文由 youngpan1101 出品,转载请注明出处。
文章链接: http://blog.csdn.net/youngpan1101/article/details/73773296
作者: 宋洋鹏(youngpan1101)
邮箱: yangpeng_song@163.com
简介
- 一旦程序需要修改一些参数必须要修改程序代码本身并重新编译,为了让程序出厂后还能根据需要进行必要的配置,所以要用配置文件;
- 配置文件有很多种,如 INI 配置文件,XML 配置文件,cfg 配置文件,还有就是可以使用系统注册表等;
- INI 就是英文 “initialization” 的头三个字母的缩写;当然 INI file 的后缀名也不一定是 .ini 也可以是 .cfg,.conf 或者是 .txt。
运行 Demo
下载 inifile.cpp 和 inifile.h 文件,复制到工程目录下的 3rdParty/inifile 文件夹里 【Download】
CMakeLists.txt
cmake_minimum_required(VERSION 2.8)project( Sample ) # produce libSET(IniFileParse_CPP ${PROJECT_SOURCE_DIR}/3rdParty/inifile/inifile.cpp)ADD_LIBRARY(IniFileParse SHARED ${IniFileParse_CPP})include_directories( ${PROJECT_SOURCE_DIR}/3rdParty )add_executable( main main.cpp )TARGET_LINK_LIBRARIES( main IniFileParse )
main.cpp
#include <iostream> #include <sstream> #include "inifile/inifile.h"//模板函数:将string类型变量转换为常用的数值类型(此方法具有普遍适用性) template <class Type> Type stringToNum(const std::string& str){ istringstream iss(str); Type num; iss >> num; return num; } void getPara(const std::string& iniPath){ std::cout << "load ini file to get parameters" << std::endl; inifile::IniFile ini; int flag = ini.load(iniPath); int ret = 0; // ret = 0 : succeed to get the parameter , otherwise -1 means fail int valTmp = ini.getIntValue("CameraID", "ID", ret); if(-1 == ret){ std::cout << "can not get the CameraID from given ini file" << std::endl; } std::cout << "ret = " << ret << std::endl; std::cout << "valTmp = " << valTmp << std::endl; std::string strTmp = ini.getStringValue("Camera_Info", "SN", ret); if(-1 == ret){ std::cout << "can not get the SN from given ini file" << std::endl; } std::cout << "ret = " << ret << std::endl; std::cout << "strTmp = " << strTmp << std::endl; double dValTmp = ini.getDoubleValue("Camera_Info", "image_width", ret); if(-1 == ret){ std::cout << "can not get the image_width from given ini file" << std::endl; } std::cout << "ret = " << ret << std::endl; std::cout << "dValTmp = " << dValTmp << std::endl; // 2 x 4 Matrix std::stringstream Matrix_1(ini.getStringValue("Camera_Info", "Matrix_row_1", ret)); double num[4]; for (int i = 0; i < 4; ++i) { std::string singleValueStr; getline(Matrix_1, singleValueStr, ','); num[i] = stringToNum<double>(singleValueStr); } std::cout << "num[0] = " << num[0] << " num[1] = " << num[1] << " num[2] = " << num[2] << " num[3] = " << num[3] << std::endl; std::stringstream Matrix_2(ini.getStringValue("Camera_Info", "Matrix_row_2", ret)); for (int i = 0; i < 4; ++i) { std::string singleValueStr; getline(Matrix_2, singleValueStr, ','); num[i] = stringToNum<double>(singleValueStr); } std::cout << "num[0] = " << num[0] << " num[1] = " << num[1] << " num[2] = " << num[2] << " num[3] = " << num[3] << std::endl;}int main (int argc, char** argv){ std::cout << "ini file parse..." << std::endl; std::string iniPath = "/home/hwj/Code/sample/para.ini"; getPara(iniPath); return 1;}
para.ini
[CameraID]ID=3 ; the id of camera used to get video stream[Camera_Info]SN=HW_987654321 ; serial number of cameraimage_width=640Matrix_row_1=1,2.34,5.4,5.5 Matrix_row_2=11,12.34,15.4,15.5
编译运行
$ cd build$ cmake ..$ make$ sudo ./main
Reference
- ini 配置文件格式
阅读全文
0 0
- ini 配置文件使用方法
- delphi中ini配置文件(Inifile)使用方法
- ini配置文件
- INI配置文件
- INI配置文件
- ini配置文件
- .ini 配置文件
- UrlScan.ini配置文件
- java设置ini配置文件
- PHP.INI配置文件漫游
- php.ini中文版配置文件
- VC读取配置文件(.ini)
- INI配置文件类
- .ini配置文件的存取
- ini配置文件读写
- 读写配置文件 ini
- C#读写INI配置文件
- eclipse.ini配置文件
- 以太坊学习笔记:私有链搭建操作指南
- 深入理解Spark 2.1 Core (十):Shuffle Map 端的原理与源码分析
- 用于批量爬取微信公众号所有文章
- 美团codeM资格赛 音乐研究
- 彻底理解webservice SOAP WSDL
- ini 配置文件使用方法
- 编译程序原理VS解释程序原理
- PHP_EOL
- [leetcode]59. Spiral Matrix II(Java)
- 线性判别分析(Linear Discriminant Analysis, LDA)算法分析
- visual studio (vs)常用快捷键
- 欢迎使用CSDN-markdown编辑器
- 精益技术简历之道——改善技术简历的47条原则
- PID调节之积分(I)调节