当前位置:文档之家› c读写配置文件

c读写配置文件

c读写配置文件
c读写配置文件

MSXML2::IXMLDOMDocumentPtr pDoc;

MSXML2::IXMLDOMElementPtr xmlRoot ;

// 创建DOMDocument对象

HRESUL T hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));

if ( ! SUCCEEDED(hr))

{

MessageBox( " 无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库! " );

return ;

}

// 根节点的名称为Book

// 创建元素并添加到文档中

xmlRoot = pDoc -> createElement((_bstr_t) " Book " );

// 设置属性

xmlRoot -> setA ttribute( " id " ,( const char * )m_strId);

pDoc -> appendChild(xmlRoot);

MSXML2::IXMLDOMElementPtr pNode;

// 添加“author”元素

pNode = pDoc -> createElement((_bstr_t) " A uthor " );

pNode -> Puttext((_bstr_t)( const char * )m_strA uthor);

xmlRoot -> appendChild(pNode);

// 添加“Title”元素

pNode = pDoc -> createElement( " Title " );

pNode -> Puttext(( const char * )m_strTitle);

xmlRoot -> appendChild(pNode);

// 保存到文件

// 如果不存在就建立,存在就覆盖

pDoc -> save( " d://he.xml " );

------------------------------------------------------------------------------------------------------------------------------------------------

MSXML2::IXMLDOMDocumentPtr pDoc;

HRESUL T hr;

hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40));

if (FA ILED(hr))

{

MessageBox( " 无法创建DOMDocument对象,请检查是否安装了MS XML Parser 运行库! " );

return ;

}

// 加载文件

pDoc -> load( " d://he.xml " );

MSXML2::IXMLDOMNodePtr pNode;

// 在树中查找名为Book的节点," // "表示在任意一层查找

pNode = pDoc -> selectSingleNode( " //Book " );

MSXML2::DOMNodeType nodeType;

// 得到节点类型

pNode -> get_nodeType( & nodeType);

// 节点名称

CString strName;

strName = ( char * )pNode -> GetnodeName();

// 节点属性,放在链表中

MSXML2::IXMLDOMNamedNodeMapPtr pA ttrMap = NULL;

MSXML2::IXMLDOMNodePtr pA ttrItem;

_variant_t variantvalue;

pNode -> get_attributes( & pA ttrMap);

long count;

count = pA ttrMap -> get_length( & count);

pA ttrMap -> get_item( 0 , & pA ttrItem);

// 取得节点的值

pA ttrItem -> get_nodeTypedV alue( & variantvalue);

m_strId = ( char * )(_bstr_t)variantvalue;

// 添加整个文档的根节点

void A ddRootNode( CString strRootNode , CString strText = "")

{

m_pElement = m_pDoc->createElement( (LPCTSTR)strRootNode );

m_pElement ->put_text( _bstr_t( (LPCTSTR)strText) );

m_pDoc->appendChild( m_pElement );

}

三种最流行的开放源码 XML 库是 expat、libxml 和 Xerces。这三者都是跨平台的,每一种都充当 XSLT 库实现的基础,一旦满足了基本 XML 需要之后,它就会给您一条成长途径。

●expat 是 James Clark 创始的开放源码面向事件的 XML 解析库。他已经将该项目转让给

了 SourceForge 中的一个小组。有一个 SAX 封装器可供使用。在许多项目中都可以找到 expat 解析器,如开放源码浏览器 Mozilla、XSLT 处理器 Transformiix 和 RDF 工具 repat。

●libxml 为类似于 SAX 和 DOM 的操作提供了双重方式 API。它支持对 DTD 的验证,并且

在 Gnome 的 XSLT 处理器libxslt中使用。libxml 经过重写,已作为 libxml(2) 发布,也许还称为libxml2。这个库的用户应该确保他们拥有了当前版本。

●Xerces 是非常坚固的、拥有大量文档的库,它充当 IBM alphaWorksXML 4C 库的基础。

Xerces 还用于 Apache XSLT 处理器 Xalan 中。Xerces 支持 DOM、SAX,以及对 DTD 的验证。最新版本读取并解释了部分“W3C XML 模式推荐”(打算到 2001 年底实现完整的XML 模式支持)。

附:C/C++ 开发人员的解析器

库供应商事件文档特点许可证

本机与 SAX-带有本机 API 和LGPL(免费)expat James

Clark/expat 小组

SAX 封装器的、

非常快速的推模

型解析器。

libxml Gnome SAX DOM非常强壮;SAX

与 DOM 封装

器;执行 DTD 验

LGPL(免费)

MSXML Microsoft SAX DOM Win32 的

Microsoft XML

EULA(免费)

Xerces Apache

Software

Foundation SAX DOM执行 SAX 及

DOM 级别 1 和

2;DTD 验证;

增加的XML 模式

Apache(免费)

XTL Vivid Creations SAX DOM带 SAX 和 DOM

的基于 STL 的

XML 工具箱

商业

RXP爱丁堡大学-本机验证以 C 编写的

了解名称空间的

XML 解析器

GPL(免费)

XML 4C IBM

alphaWorks SAX DOM IBM 发起的

Xerces 的变体

Apache(免费)

Oracle XDK 8i Oracle SAX DOM Oracle 主办的用

于 C++ 的 XML

工具箱

非商业

Pull Parser Extreme! Lab-本机印地安那大学发

起的用于 C++ 的

轻量型 XML 工具

非商业

XMLBooster PhiDaNi

Software -本机解析器发生器,

生成 C 源码解析

商业

-------------------------------------------------------Boost读取XML配置文件-----------------------------------------------------------------------------------------------------------

前两天因工作需要写了个xml配置脚本解析的功能类,虽说有N种方式可以实现,但考虑到

Boost库在此方面的易操作性(虽支持不够健全,如Unicode支持等)所以封装了一下,具体如下:

//CProcessXmlConfigFile.h(此类由Dll导出)

#i nclude "stdafx.h"

#pragma once

#i nclude

#i nclude

#i nclude

#i nclude

#i nclude

#i nclude

#i nclude "header.h"

#define MA X_PA NLIST_NUM 9 //默认面板个数

#define MA X_FNA ME_LEN 256 //文件名长度宏

using namespace boost::property_tree;

typedef ptree xmlParser;

typedef vector panNames_t;

typedef boost::shared_ptr sh_pstr;

typedef boost::tuples::tuple node_t;

typedef std::list ptree_nodes_t;

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

class AFX_EXT_CLA SS CProcessXmlConfigFile :

private boost::noncopyable

{

public:

virtual ~CProcessXmlConfigFile(void);

//获取类唯一实例的静态方法

static CProcessXmlConfigFile& instance(const string& xmlfile);

//|=======================================|

//| 以下为设置xml文件的各方法 |

//|=======================================|

void getPanListInfo(void);

void getTreeInfoOfPan(PanIndex _index);

inline panNames_t getPanList(void) const { return m_panobj; }

inline ptree_nodes_t getPtreeNodeList(void) const { return m_ptreeobj; }

private:

CProcessXmlConfigFile(const string& xmlfile);

//合理性验证方法[_index:面板索引]

bool ICanWork(PanIndex _index);

//加载文件[xml文件名<含路径>]

bool loadfile(const string& xmlfile);

//递归遍历节点目录树函数[nodepath:节点路径<分割符为'/'>]

void recursive_print(const string& nodepath);

private:

xmlParser m_parser; //xml文件解析对象

panNames_t m_panobj;//存储面板对象列表

//存储当前面板下的树节点对象列表

ptree_nodes_t m_ptreeobj;

};

//CProcessXmlConfigFile.cpp

#i nclude "StdA fx.h"

#i nclude "ProcessXmlConfigFile.h"

#i nclude

// #i nclude

#i nclude

#i nclude

#i nclude

// #i nclude

// #i nclude

// #i nclude

// #i nclude

// #i nclude

using namespace std;

using namespace boost;

//参数默认值..

const int iDefaultInt = 0;

const string strNullString = "";

const char chflag = '/';

const string strPan = "doc/pans/pan";

const string strflag = "";

const wstring win32_dir_splitchar = L"\\";

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

CProcessXmlConfig:CProcessXmlConfigFile(const string& xmlfile) {

loadfile(xmlfile);

m_panobj.clear();

m_panobj.reserve(MA X_PA NLIST_NUM);

CProcessXmlConfig:~CProcessXmlConfigFile(void)

{

}

CProcessXmlConfigFile& CProcessXmlConfig:instance(const string& xmlfile) {

static CProcessXmlConfigFile _instance(xmlfile);

return _instance;

}

void CProcessXmlConfig:getPanListInfo( void )

{

//开始获取.

//首先获取总面板节点个数

assert(m_parser.get_optional("doc.pans..glcount"));

//循环获取各节点名称

string str = "";

auto_t(child, m_parser.get_child("doc.pans"));

for (auto_t(t, child.begin()); t != child.end(); ++t)

{

str = t->first;

if (str.find("pan") == string::npos)continue;

m_panobj.push_back(t->second.data());

}

}

void CProcessXmlConfig:getTreeInfoOfPan( PanIndex _index )

{

//防御性设计

if (!ICanWork(_index))return;

//..

format fmt("%s-%d");

fmt % strPan % _index;

m_ptreeobj.clear();

recursive_print(fmt.str());

}

bool CProcessXmlConfig:ICanWork( PanIndex _index )

{

return (_index >= ST_PhysicalCharacteristics && _index <= ST_Report);

}

bool CProcessXmlConfig:loadfile(const string& xmlfile)

{

//防御性设计

if (xmlfile.empty())return false;

//..

try

//获取当前应用程序路径..

wstring strPath(L"");

{

TCHA R currPath[MA X_FNA ME_LEN+1] = {0};

GetModuleFileName(NULL, currPath, MA X_FNA ME_LEN);

TCHA R *psz = _tcsrchr(currPath, '\\');

if (psz)

{

*psz = '\0'; //取出程序所在的目录

lstrcat(currPath, win32_dir_splitchar.c_str());

strPath = currPath;

}

}

//加载配置文件.

string xmlfilePath = WideToA SCII(strPath.c_str()) + xmlfile;

// std::locale oldLocale;

// std::locale utf8Locale(oldLocale,

// new boost::program_options::detail::utf8_codecvt_facet());

read_xml(xmlfilePath, m_parser, xml_parser::no_comments);

}

catch(std::exception& e)

{

A fxMessageBox(A SCIIToWide(e.what()).c_str());

return false;

}

return true;

}

//递归遍历xml节点目录树函数..

void CProcessXmlConfig:recursive_print( const string& nodepath )

{

if (nodepath.empty())return;

static size_t nproc = 0; //记录递归层次[测试留用]

//..

string strKey, strKey_, str;

auto_t(node, m_parser.get_child(ptree::path_type(nodepath, chflag))); //获取节点信息

for (auto_t(pt, node.begin()); pt != node.end(); ++pt)

{

strKey = pt->first;

if (strKey.find(strflag) != string::npos)

continue;

str = pt->second.data();

// for (size_t i = 0; i < nproc; ++i)

// cout << "\t";

// cout << strKey << " = " << (str.empty() ? "empty" : str);

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

strKey_ = nodepath + "/" + strKey + "/" + strflag;

auto_t(attr, m_parser.get_child(ptree::path_type(strKey_, chflag)));

//获取节点属性信息

for (auto_t(tt, attr.begin()); tt != attr.end(); ++tt)

{

string atkey = tt->first;

size_t atnval = tt->second.get_();

m_ptreeobj.push_back(make_tuple(sh_pstr(new string(strKey)), atnval, sh_pstr(str.empty() ? new string("empty") : new string(str))));

// cout << " <" << atkey << ":" << atnval << ">" << endl;

strKey = nodepath + "/" + pt->first;

if (atnval > 0) //若子节点数目不止一个则递归遍历

{

++nproc;

recursive_print(strKey);

}

}

}

--nproc;

// cout << "*****************************************\n";

}

//主程序文档类中用到了CViewTree来动态加载节点,具体调用如下:

instance =

&CProcessXmlConfig:instance(xmlfile);

BOOST_A SSERT(instance);

//获取面板名称列表.

instance->getPanListInfo();

szPanName = instance->getPanList();

if (szPanName.empty())return;

// BOOST_FOREA CH(panNames_t::_type& p, szPanName)

// A fxMessageBox(CString(p.c_str()));

for (size_t i = 0; i < szPanName.size(); ++i)

{

// 首先生成树

CViewTree * ptree = new CViewTree;

if (!ptree)return;

//......

FillClassView();

//......

}

FillClassView()方法主体如下:

{

//防御性设计

if (m_objtree.empty())return;

if (m_nindex < 0 || m_nindex >= m_objtree.size())return;

shared_wnd_ptr pTreeView = m_objtree[m_nindex];

if (NULL == pTreeView)return;

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

//加载配置文件并读取配置数据..

{

//获取当前面板树节点集合信息.

BOOST_A SSERT(instance);

instance->getTreeInfoOfPan(m_pIndex);

ptree_nodes_t ptreenodes = instance->getPtreeNodeList();

if (ptreenodes.empty())return ;

//动态生成树节点..

{

int nsub = 0;

HTREEITEM item, pitem;

std::stack S;

S.push(pitem);

BOOST_FOREA CH(node_t& node, ptreenodes)

{

size_t n = node.get<1>();

string strV al = *node.get<2>();

if (strV al.empty() || !https://www.doczj.com/doc/5c7394876.html,pare("empty"))continue;

if (nsub > 0)

{

pitem = S.empty() ? NULL : S.top();

item = pTreeView->InsertItem(CString(strV al.c_str()), pitem); }

else

{

if (!S.empty()) S.pop();

pitem = S.empty() ? NULL : S.top();

item = pTreeView->InsertItem(CString(strV al.c_str()), pitem); }

if (0 == n) --nsub;

else

{

nsub = n;

S.pus

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文件中读取数据的函数

proe工程图配置文件.dtl常用选项及使用详解

工程图配置文件.dtl常用选项及使用详解 工程图配置文件是出工程图所必需了解掌握的知识。我写过一篇关于系统配置文件config.pro的教程,里面提到过配置文件对于使用PROE非常重要。 config.pro的使用,请先看这个帖https://www.doczj.com/doc/5c7394876.html,/thread-9138-1-1.html 不可否认的是,论坛工程图版的求助帖超过一半与工程图配置文件设置有关。可见工程图配置文件的重要性。工程图配置文件*.dtl使用上比系统配置文件config.pro要简单一些。所以本帖先将一些常用选项列出,供大家参考。配置文件使用方面的内容放在后面讲解。 本帖为原创,严禁转载! 请勿综合成PDF或WORD等格式打包下载,谢谢合作! 本帖不设回复可见,方便大家都可以见到 本帖所讲述的内容目录如下: 一、工程图配置文件常用选项及说明 二、工程图配置文件使用详解 1、创建工程图配置文件*.dtl 2、工程图配置文件选项的查找 3、工程图配置文件的选项设置与修改 4、工程图配置文件的正确调用 一、工程图配置文件常用选项及说明 drawing_units mm(前面为选项,空格后为值,下同) 此项设置所有绘图参数的单位,比如后面的文字大小、箭头大小等选项,是以mm为单位的,先要设置这个选项。 drawing_text_height 3.5 设置缺省文本的缺省高度,如注释中的文字,标注中的数值大小。 text_width_factor 0.7 设置文本的高度和宽度的比例,按国标应使用长仿宋体,应为0.7。 但此项设置对于windows系统自带的仿宋体无效。 broken_view_offset 3 设置破断视图两破断线之间的距离 detail_circle_line_stylephantomfont 设置详细视图(局部放大图)的边界线的线型,影响打印的粗细 projection_typefirst_angle 设置视图的投影方向为第一角法(国标要求用第一角法,日本等国用第三角法)

8313配置文件及说明

writereg MBAR 0xFF400000 writemem.l 0xFF400000 0xE0000000 # IMMRBAR = 0xE0000000 writereg MBAR 0xE0000000 writemem.l 0xE0000020 0xFE000000# LBLAWBAR0 - begining at 0xfe000000 writemem.l 0xE0000024 0x80000014# LBLAWAR0 - enable, size = 2MB #writemem.l 0xE0000028 0xFA000000 # LBLAWBAR1 FPGAbegining at 0xfa000000 #writemem.l 0xE000002C 0x8000000E # LBLAWAR1 - enable, size = 32KB writemem.l 0xE00000A0 0x00000000 # DDRLAWBAR0 - begining at 0x00000000 writemem.l 0xE00000A4 0x80000018 # DDRLAWAR0 - enable, size = 32MB # DDR Controller Configuration #1 DDRCDR writemem.l 0xE0000128 0x73040002 #CLK_CNTL writemem.l 0xE0002130 0x02000000 #同原0x02000000。[5-7]CLK_ADJST = 010(1/2),or 011(3/4) # CS0_BNDS writemem.l 0xE0002000 0x00000001 # 0x00000001 - 0x01FFFFFF ;32MB # CS0_CONFIG # [8]AP_0_EN = 1,0? # [16-17]BA_BITS_CS_0 = 00,01? Number of bank bits for SDRAM on chip select n. # [21-23]ROW_BITS_CS_0 = b'001' ; 12 row bits # [29-31]COL_BITS_CS_0 = b'010' ; 9 columns bits #原0x80840102 不同:[29-31]、[21-23], writemem.l 0xE0002080 0x80000001 # TIMING_CFG_3 原0x00000000 # 13-15EXT_REFREC = 001; AUTO REFRESH command period tRFC=72 ns writemem.l 0xE0002100 0x00010000 # TIMING_CFG_1 原0x26256222 # bit 1-3 = 2 tRP=15ns,(tck=7.5) (类似tRP ,为DDR芯片手册上内容)# bit 4-7 = 6 tRAS=42ns, # bit 9-11 = 2 tRCD=15ns, # bit 12 - 15 = 0011:2;0100:2.5 # bit 16 - 19 = 2 (10tck) tRFC=72 ns (tck=7.5) # bit 21 - 23 = 2 tWR=15ns, # bit 25 - 27 = 2 tRRD=12ns, # bit 29 - 31 = 1 tWTR=1tck writemem.l 0xE0002108 0x26232221

C语言读写配置文件代码

MFC读写ini配置文件 1.新建头文件如:iniFunc.h,在编辑区域粘贴以下内容: ///////////////////////////////////////////////////////////////////////// // iniFunc.h: interface for the Cini class. #if !defined(AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED _) #define AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED_ #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 #include class Cini { public: static DWORD ReadString (char *section, char * key, char stringtoread[], char * filename); static BOOL WriteString(LPCTSTR section, LPCTSTR key,char* stringtoadd, char *filename); Cini(); virtual ~Cini(); }; #endif // !defined(AFX_OPINI_H__CE3F8B7B_1ACA_46CC_A91C_F8E23FA9B063__INCLUDED_) 2.新建资源文件如:iniFunc.cpp,在编辑区域黏贴以下内容: ///////////////////////////////////////////////////////////////////////// // ini.cpp: implementation of the Cini class. #include "stdafx.h" #include "ini.h" ///////////////////////////////////////////////////////////////////////// //Cini类的构造函数和析构函数 Cini::Cini() { } Cini::~Cini()

MySQL配置文件详解

./configure --prefix=/usr/local/mysql \ --without-debug \ #去除debug模式. --enable-thread-safe-client \ #以线程方式编译客户端. --with-pthread \ #强制使用pthread线程库编译. --enable-assembler \ #允许使用汇编模式. --enable-profiling \ #Build a version with query profiling code (https://www.doczj.com/doc/5c7394876.html,munity-features) --with-mysqld-ldflags=-all-static \ #静态编译mysqld的额外link参数. --with-client-ldflags=-all-static \ #静态编译client的额外link参数. --with-charset=utf8 \ #默认字符utf8. --with-extra-charsets=all \ #支持所有的语言字符. --with-innodb \ #innodb数据引擎. --with-plugins=innobase \ --with-plugins=heap \ #内存数据引擎. --with-mysqld-user=mysql \ #mysql安装使用的帐号 --without-embedded-server \ #去除安装embedded-server. --with-server-suffix=-community \ #社区形式安装. --with-unix-socket-path=/tmp/mysql.sock MYSQl启动的一般设置: /etc/https://www.doczj.com/doc/5c7394876.html,f基本部设参数设置. # back_log 是操作系统在监听队列中所能保持的连接数, # 队列保存了在MySQL连接管理器线程处理之前的连接. # 如果你有非常高的连接率并且出现"connection refused" 报错, # 你就应该增加此处的值. # 检查你的操作系统文档来获取这个变量的最大值. # 如果将back_log设定到比你操作系统限制更高的值,将会没有效果 # 在MYSQL的连接请求等待队列中允许存放的最大连接请求数. defautl=50,最大65535,根据os对网络监听队列的情况来设置. back_log = 20000 # MySQL 服务所允许的同时会话数的上限 # 其中一个连接将被SUPER权限保留作为管理员登录. # 即便已经达到了连接数的上限. # 整个Mysql允许的最大连接数.这个参数会影响mysql的应用并发处理能力.有些资料上提到 500-800,以我们的机子来说单个mysql实例设置10000应该是没有问题的。如果还需可能需要第三方软件解决php连接池的问题,提高还需要连接池. max_connections = 10000 # 每个客户端连接最大的错误允许数量,如果达到了此限制. # 这个客户端将会被MySQL服务阻止直到执行了"FLUSH HOSTS" 或者服务重启 # 非法的密码以及其他在链接时的错误会增加此值. # 查看 "Aborted_connects" 状态来获取全局计数器. max_connect_errors = 10

读取配置文件和修改配置文件(ServiceIP.properties)(原创)

读取配置文件和修改配置文件(ServiceIP.properties)(原创) package espeed.util; import java.io.*; import java.util.Properties; /* * 配置短信服务器IP(配置文件建在SRC下,ServiceIP.properties) */ public class EditServiceIP { private static Properties properties=new Properties(); private static EditServiceIP esip; public EditServiceIP(){} public static EditServiceIP getInstance(){ if(esip==null) esip=new EditServiceIP(); return esip; } //取得短信服务器IP public String getSmsServiceIP(){ InputStream

is=EditServiceIP.class.getClassLoader().getResourceAsSt ream("ServiceIP.properties"); try { properties.load(is); } catch (IOException e) { // TODO Auto-generated catch block System.out.println("------------取得短信服务器IP地址发生IO异常"); } String provalue=properties.getProperty("SMS.ServiceIP"); return provalue; } //修改短信服务器IP public String modifySmsServieIP(String smsServiceIP){ File file=new File(EditServiceIP.class.getClassLoader().getResource("S erviceIP.properties").getPath()); try{ properties.load(new FileInputStream(file));

C#读写配置文件

Windows 应用程序: ///

///发布后就可以读取了 /// private readonly string strFileName = AppDomain.CurrentDomain.BaseDirectory + "Windows_RWConfig.exe.config"; //获得配置文件的全路径 /// ///修改配置文件 /// ///key ///value private void UpdateConfig(string key, string value) { XmlDocument xDoc = new XmlDocument(); xDoc.Load(strFileName); //找出名称为“add”的所有元素 XmlNodeList nodes = xDoc.GetElementsByTagName("add"); for (int i = 0; i < nodes.Count; i++) { //获得元素的key属性 XmlAttribute att = nodes[i].Attributes["key"]; //根据元素的第一个属性来判断元素是不是目标元素 if (att.Value == key) { //对目标元素中的第二个属性赋值 att = nodes[i].Attributes["value"]; att.Value = value; break; } } //保存上面的修改 xDoc.Save(strFileName); } /// ///读取配置文件 /// ///

配置文件使用说明

(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无。默认为

C#读写config配置文件

C#读写config配置文件 应用程序配置文件(App.config)是标准的XML 文件,XML 标记和属性是区分大小写的。它是可以按需要更改的,开发人员可以使用配置文件来更改设置,而不必重编译应用程序。 对于一个config文件: 对config配置文件的读写类: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Text.RegularExpressions; using System.Configuration; using System.ServiceModel; using System.ServiceModel.Configuration; namespace NetUtilityLib { public static class ConfigHelper { //依据连接串名字connectionName返回数据连接字符串 public static string GetConnectionStringsConfig(string connectionName) { //指定config文件读取 string file = System.Windows.Forms.Application.ExecutablePath; System.Configuration.Configuration config = ConfigurationManager.OpenExeConfiguration(file); string connectionString = config.ConnectionStrings.ConnectionStrings[connectionName].ConnectionString.ToString(); return connectionString; } ///

///更新连接字符串 /// ///连接字符串名称 ///连接字符串内容 ///数据提供程序名称 public static void UpdateConnectionStringsConfig(string newName, string newConString, string newProviderName) { //指定config文件读取 string file = System.Windows.Forms.Application.ExecutablePath; Configuration config = ConfigurationManager.OpenExeConfiguration(file); bool exist = false; //记录该连接串是否已经存在 //如果要更改的连接串已经存在 if (config.ConnectionStrings.ConnectionStrings[newName] != null) { exist = true; } // 如果连接串已存在,首先删除它 if (exist) { config.ConnectionStrings.ConnectionStrings.Remove(newName); } //新建一个连接字符串实例

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函数:

ecology各配置文件开关说明

配置文件存放路径:ecology/WEB-INF/prop/ 1、weaver.properties(标准版基本配置) 以下几项配置为默认不打开的开关,或新版本增加的开关: ecology.changestatus = 1(任意不为空的值)--开启流程反馈功能。 ecology.overtime = 5(必须为数字,代表超时检测的时间,单位为分钟。如果不是数字,系统将默认1分钟检测一个超时)ecology.isgoveproj = 0(必须为数字,为0代表企业版,为1代表政务版)--【8831】 ecology.LicenseVersion = 2(必须为数字,2代表固定通过本地连接的网卡来获取license识别码,动态的虚拟网卡等不再获取,不添加此配置或值为1表示按照原方式获取识别码,包括虚拟网卡--【9911】) 2、Upgrade.properties(系统升级配置文件) STATUS = 0(数字,标示升级的状态 ERRORLOG = (升级错误日志所在地址) 3、Others.properties(非标准版功能配置文件) ##是否启用流程出口消息提醒【8940】 WORKFLOWWAYOUT = t(t为开启,f为关闭,默认为f) ##定时清除流程不良信息的周期,同时也做为消息提醒定时删除周期和保留天数。单位(天)【9080】 WFERRORDATACLEARTIME = 7(数字) ##系统是否使用多账号登陆【9325】 MOREACCOUNTLANDING = y(y为开启) ##即时通讯开关【9425】 MESSAGES_SET = 1(1为开启) ##是否启用签到签退功能true:是false或其它:否【9286】 isSignInOrSignOut=true(true为开启) ##繁体开关【11991】 ZH_TW_LANGUAGE = 1(1为开启) 4、workflowmonitor.properties(流程监控增加流程干预功能)WORKFLOWINTERVENORBYMONITOR = y(y为开启)【9423】 5、worktask.properties(计划任务【9427】) #1,使用计划任务模块;0,不使用;读不到该值,默认为0 isusedworktask = 1(1为开启) #计划任务模板转任务提前转化天数,读不到该值,默认为7天mudelchangewakefrequency = 7(数字) 6、dactylogram.properties(指纹登录【9557】) ONDACTYLOGRAM = Y(Y为启用,N为禁用)

配置管理文档

配置管理文档

项目名 格拉特尼美食梦工厂开发日期:2010-09-20至2011-01-14 称: 分类:配置管理文档指导教师:王崇文 团队:2013 页数: 修订记录 日期版本内容作者<11/3/2010> <1.0> 编写文档框架2013 <11/5/2010> <1.1> 确定基线内容2013 2013 <11/7/2010> <1.2> 将文件进行编号,和整理,并体现在文 档当中 小组成员

魏盛斌20072757 闫志鑫20072759 尹航20072760 郑然20072766 目录 目录 (2) 1引言 (3) 1.1目的 (3) 1.2术语定义 (3) 1.3参考资料 (3) 2软件配置 (5) 2.1软件配置环境 (5) 2.2软件配置项 (5) 2.3配置管理员 (6) 4 软件配置管理计划 (8) 4.1建立示例配置库 (8) 4.2配置标识管理 (9) 4.2.1文档 (9) 4.2.2程序 (9) 4.2.3基线 (9)

4.3配置库控制 (10) 4.3.1权限控制 (10) 4.3.2配置库的控制 (10) 4.3.3建立软件库 (10) 4.3.4软件配置更改 (10) 4.3.5配置文件清单的维护 (10) 4.4配置的检查和评审 (11) 4.5配置库的备份 (13) 4.6配置管理计划附属文档 (13) 5里程碑 (14) 7附录1 文档命名规定 (15) 7.1受控配置库文件命名规则 (15) 7.2非受控配置库文件命名规则 (15) 7.3提交文档文件命名规则 (15) 9附录2 文档编码规范 (17) 10附录3 帐号及权限管理 (18) 11附录4 配置库使用规定 (20) 1引言

配置文件(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.doczj.com/doc/5c7394876.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。

_MTK校准配置文件参数详细说明

4.1 INI 文件的介绍: 4.1.1[射频功能组的复位] 下面是setup INI文件中定义的项目。 GSM900 Sig = 1 GSM1800 Sig = 1 GSM1900 Sig = 1 GSM900 NSig = 1 GSM1800 NSig = 1 GSM1900 NSig = 1 通常设置为1,指在对CMU200设置之前对设备进行复位,为0时不复位。 4.1.2 系统设置: setup INI文件中定义的项目: External Reference Clock = 0 默认值为0,指使用CMU200输出的参考时钟,为1时使用外部参考时钟。 CMU Base GPIB Address = 20 CMU的GPIB地址的设置,要与软件对应。 Instrument = "CMU200" 使用的设备为CMU200 Power Supply Address = GPIB0::5::INSTR 电源地址的设置 使用Kei230x时,应为Power Supply Address = 5 CMU RF Port = 2 CMU200使用的射频端口设置 Test Mode = 0 设为0指需要手动对设备进行初始化,1指在综测时软件将自动对设备进行初始化,2指在校准时软件将自动对设备进行初始化,3指在校准和综测联合测试时软件将自动对设备进行初始化 FDM database file = "c:\\Program Files\\MTK_atedemo\\report\\BPLGUInfoCustom" Database文件的存放路径,必须与手机软件对应 Calibration file = "c:\\Program Files\\MTK_atedemo\\MTKCAL_6205B.INI" 校准初始默认值设置文件的路径 Config file = "c:\\Program Files\\MTK_atedemo\\meta_6205B.CFG" 关于校准的设置,如校准的信道,限制的最大、最小值 Report file path = "c:\\Program Files\\MTK_atedemo\\report_6218B" 测试报告的存储路径 Database file = "c:\\Program Files\\MTK_atedemo\\Report_Statistics\\6218B_statistics.xls" 测试结果文件的存放路径 IMSI = "001010123456789" SIM卡中的IMSI号的设置 POWER ON AFTER CHANGE = 1 联合测试时,如果设备改变不同状态时较慢,则设置为1 Stability Count = 1 循环测试的次数设置 Fixture COM port = 1 串口地址设置 System Cable Loss Calibration = 0 校准系统的线损选择 4.1.3呼叫建立设置 Setup Network = 1 建立呼叫时的网络设置,1指GSM频段,2指DCS频段,3指PCS频段 GSM Call Setup Channel = 1 建立呼叫的信道号设置

proe常见配置文件

十一)常用的一些选项 前面已经提到config.pro有很多选项,但常用的选项并不多。下面列举部分选项,并作简要说明,供大家参考。 menu_translation both——设置下拉菜单时为中英文双语菜单 tol_mode nominal——设置显示的尺寸没有公差 trail_dir D:\Program Files\trail——设置轨迹文件存放路径 web_browser_homepage about:blank——设置浏览器首页为空白页 drawing_setup_file D:\Program Files\peizhi\gb.dtl——设置工程图配置文件 system_colors_file D:\Program Files\peizhi\syscol.scl——设置系统颜色配置文件 pdf_use_pentable yes——设置输出PDF时使用系统线宽设置 pro_format_dir D:\Program Files\peizhi\format——设置工程图格式文件路径 template_solidpart D:\Program Files\peizhi\template\startpart.prt.5——设置零件模板 template_designasm D:\Program Files\peizhi\template\startasm.asm.3——设置组件模板 model_note_display no——设置注释不显示 pro_unit_length unit_mm——设置长度缺省单位为mm pro_unit_mass unit_kilogram——设置质量缺省单位为kg pro_unit_sys mmks——设置缺省单位系统为mmks(毫米千克秒) bell no——关闭提示音 default_dec_places 3——设置所有模型模式中非角度尺寸的缺省小数位数 default_ang_dec_places 2——设置角度尺寸小数位数 sketcher_dec_places 2——设置草绘时的尺寸小数位数 default_draw_scale 1:1——设置工程图中缺省的绘图比例,即插入一般视图时默认为1比1 save_drawing_picture_file embed——设置将图片嵌入工程图中,可以实现工程图打开时预览 search_path_file D:\Program Files\peizhi\search.pro——设置搜索文件 tangent_edge_display no——设置相切边不显示 set_menu_width 12——设置下拉菜单的宽度 intf_out_layer part_layer——设置图层方式(影响转CAD) dxf_export_mapping_file D:\Program Files\peizhi\dxf_export.pro——指定转CAD的转换设置文件 mdl_tree_cfg_file D:\Program Files\peizhi\tree.cfg——设置模型树配置文件 allow_anatomic_features yes——设置自动再生特征 text_height_factor 40——设置系统坐标及基准面显示的字体大小 pro_note_dir D:\Program Files\peizhi\note——设置注释文件路径 rename_drawings_with_object both——设置保存副本时自动复制与零件或组件相关的工程图 use_8_plotter_pens yes——设置使用8笔(影响打印) mass_property_calculate automatic——设置质量自动计算 format_setup_file D:\Program Files\peizhi\format.dtl——设置工程图格式文件的配置文件 pro_symbol_dir D:\Program Files\peizhi\symbol——设置工程图用的符号 tolerance_standard iso——设置公差标准为ISO pro_plot_config_dir D:\Program Files\peizhi\print_pcf——设置打印机打印样式文件路径 pro_material_dir D:\Program Files\peizhi\material——设置材料库文件路径 pen_table_file D:\Program Files\peizhi\table.pnt——设置打印线宽配置文件 step_export_format ap214_cd——设置输出step格式文件时,保留原模型颜色 dxf_out_scale_views yes——输出为DWG或DXF时不管工程图中的比例,自动重新缩放为1比1

相关主题
文本预览
相关文档 最新文档