搜档网
当前位置:搜档网 › C#中配置文件的操作

C#中配置文件的操作

C#中配置文件的操作
C#中配置文件的操作

C#中配置文件的操作

注:从网上收集整理了关于C#中配置文件的资料,以下是自己的学习笔记,希望能给大家一点帮助,如有错漏,恳请指出。

1配置文件介绍

程序配置文件实质上是应用程序的一种针对配置信息读写最简单的工具。它重要的功能就是将命令行选项和配置文件选项统一到一种数据结构中,这样的话可以在外部设置参数,而无须修改代码来达到我们想要的效果。配合上配置文件的读写接口,操作上也较为方便。

过去常见的配置文件是以“.ini”为后缀的文本文件。INI,是英文“初始化(Initial)”的缩写。正如该术语所表示的,INI文件被用来对操作系统或特定程序初始化或进行参数设置。格式上主要分为“节”、“参数”和“注解”三部分。后来由于Windows95推出了注册表的概念,INI配置文件在系统中的地位就大不如前了。不过作为应用程序的配置读写来说,INI 还是有其牢固的地位的。

后来XML的发展也为配置文件提供了一种更好的存储格式。常见到的“config”文件扩展名的文件,也是在C#编程中较为常用的。

C#的配置文件在编码阶段,可通过添加新项找到(名为“应用程序配置文件”),添加入项目后名为app.config,程序编译后一般是以“程序名”+“.exe”+“.config”命名的文件出现。config文件的内容与配置相关的分为两大部分,一部分为应用程序的配置节(appSettings),另一部分为连接字符串的配置节(connectionStrings)。可使用C#提供的ConfigurationManager (原先使用ConfigureationSettings,现已弃用)进行读取。ConfigurationManager中比较重要的是AppSettings和ConnectionStrings两个属性,分别负责读取应用程序的配置项(appSettings)和连接字符串的配置项(connectionStrings)。如果要修改配置文件项,需要先通过ConfigurationManager的OpenExeConfigureation()方法读取信息到Configuration类中,再修改其中对应项的信息,然后执行保存,最后如果要将结果调用出来,还需要ConfigurationManager调用RefreshSection()方法进行刷新。

以上是对配置文件一些简单的介绍。下面我们来详细看一下配置文件的各种功能和用法。

2INI配置文件

2.1格式

INI配置文件以”ini”为文件扩展名,内容格式为:节、参数和注解。

每一个INI文件构成都非常类似,由若干段落(section)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键词(keyword)和一个等号,等号右边的就是关键字对

应的值(value)。其一般形式如下:

[Section1]

KeyWord1 = Valuel

KeyWord2 = Value2

……

[Section2]

KeyWord3 = Value3

KeyWord4 = Value4

2.1.1节

[section]

2.1.2参数

name=value

2.1.3注解

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

如:

; comment text

2.2操作

C#操作INI文件使用的是Windows系统自带Win32的API函数——WritePrivateProfileString()和GetPrivateProfileString()函数。这二个函数都位于“kernel32.dll”文件中。C#中对Win32的API函数的互操作是通过命名空间“System.Runtime.InteropServices”中的“DllImport”特征类来实现的。它的主要作用是指示此属性化方法是作为非托管DLL的输出实现的。

2.2.1读取

[ DllImport ( "kernel32" ) ]

private static extern intGetPrivateProfileString ( string section ,

string key , string def , StringBuilderretVal ,

int size , string filePath ) ;

参数说明:section:INI文件中的段落名称;key:INI文件中的关键字;def:无法读取时候时候的缺省数值;retVal:读取数值;size:数值的大小;filePath:INI文件的完整路径

和名称。

2.2.2写入

[ DllImport ( "kernel32" ) ]

private static extern long WritePrivateProfileString ( string

section ,

string key , string val , string filePath ) ;

参数说明:section:INI文件中的段落;key:INI文件中的关键字;val:INI文件中关键字的数值;filePath:INI文件的完整的路径和名称。

2.3 实例

下面是自行编写的一个读写INI文件的类

class IniFile

{

//绝对路径(默认执行程序目录)

publicstring FilePath { get; set; }

///

///读取ini文件

///

///段落名

///

///缺省值

///所对应的值,如果该key不存在则返回空值 ///值允许的大小

///INI文件的完整路径和文件名

///

[DllImport("kernel32")]

privatestaticexternint GetPrivateProfileString(

string section, string key, string defVal,

StringBuilder retVal, int size, string filePath);

///

///写入ini文件

///

///段落名

///

///

///INI文件的完整路径和文件名

///

[DllImport("kernel32")]

privatestaticexternlong WritePrivateProfileString(

string section, string key, string val, string filePath);

#region静态方法

publicstaticstring ReadVal(string section, string key, string filePath) {

string defVal = "";

StringBuilder retVal = new StringBuilder();

int size = 10240;

string rt = "";

try

{

GetPrivateProfileString(section, key, defVal, retVal, size, filePath); rt = retVal.ToString();

}

catch

{

rt = "";

}

return rt;

}

publicstaticbool WriteVal(string section, string key, string val,

string filePath)

{

try

{

if (WritePrivateProfileString(section, key, val, filePath) == 0) returnfalse;

else

returntrue;

}

catch

{

returnfalse;

}

}

#endregion

#region对象方法

publicstring ReadVal(string section, string key)

{

string defVal = "";

StringBuilder retVal = new StringBuilder();

int size = 10240;

string rt = "";

try

{

GetPrivateProfileString(section, key,

defVal, retVal, size, this.FilePath);

rt = retVal.ToString();

}

catch

{

rt = "";

}

return rt;

}

publicbool WriteVal(string section, string key, string val)

{

try

{

WritePrivateProfileString(section, key, val, this.FilePath); returntrue;

}

catch

{

returnfalse;

}

}

#endregion

}

3Config配置文件

3.1文件内容层次

configuration为根节点,其下可以带有appSettings和connectionStrings两个子节点。

另外需要注意的是这两个子节点中配置项的名称和值并不一样,appSettings中为“key”和“value”,connectionStrings中为“name”和“connectionString”。

粗略为如下所示:

一个完整的config配置文件内容:

3.2appSettings节的操作

config文件中appSettings的读取主要依靠ConfigurationManager类提供的两个属性:AppSettings和ConnectionStrings,通过字符串索引获取对应配置项的内容。

config文件中appSettings的读取主要依靠ConfigurationManager类提供的属性:AppSettings,通过字符串索引获取对应配置项的内容。

而写入操作,必须要先读取配置到一个特定的配置对象中,再作修改和保存。

3.2.1读取

通过ConfigurationManager.AppSettings[key]读取

例子:

publicstaticstring GetAppSetting(string key)

{

string s = "";

try

{

s = ConfigurationManager.AppSettings[key];

}

catch { }

return s;

}

3.2.2以配置对象为单位写入

写入需要将配置文件读取到Configuration对象中,然后在其中修改,最后保存。

另外注意,Configuration类是没有构造函数的,需要使用ConfigurationManager类的OpenExeConfiguration()方法打开。

3.2.2.1打开

与3.3.2.1 connectionStrings的打开相同

1、打开当前程序的配置文件。

Configuration config =

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None );

2、打开指定路径的配置文件。

ConfigurationManager.OpenExeConfiguration(string exePath)

3.2.2.2修改

config.AppSettings.Settings[key].Value = value;//修改对应项

config.Save(ConfigurationSaveMode.Modified); //保存ConfigurationManager.RefreshSection("appSettings"); //刷新配置文件管理类

3.2.2.3添加

config.AppSettings.Settings.Add(key, value); //添加

//后续保存、刷新不累赘

3.2.2.4删除

config.AppSettings.Settings.Remove(key); //删除

//后续保存、刷新不累赘

3.2.3以配置节为单位写入

通过获取配置对象的指定节,在节上进行写入操作。

下面的修改为例(注:添加和删除也大同小异)

AppSettingsSectionappSettings = (AppSettingsSection)m_Config.GetSection("appSettings"); appSettings.Settings[key].Value = value;

m_Config.Save();

3.3connectionStrings节的操作

config文件中connectionStrings的读取跟appSettings类似,也要依靠ConfigurationManager类提供的属性,这个属性为ConnectionStrings。

写入操作也类同。

3.3.1读取

ConfigurationManager.ConnectionStrings[name].ToString()

3.3.2写入

3.3.2.1打开

参照3.2.2.1

3.3.2.2修改

config.ConnectionStrings.ConnectionStrings[name].ConnectionString = connectionString;

//config.ConnectionStrings.ConnectionStrings[name].ProviderName = providerName; //该项可选

3.3.2.3添加

ConnectionStringSettings connSetting = new ConnectionStringSettings(name, connectionString, providerName); //生成项

config.ConnectionStrings.ConnectionStrings.Add(connSetting); //添加

//后续保存、刷新

3.3.2.4删除

m_Config.ConnectionStrings.ConnectionStrings.Remove(ConnectionStringS ettings item); //通过指定项删除

m_Config.ConnectionStrings.ConnectionStrings.Remove(name); //通过名称删除

3.3.3以配置节为单位写入

直接上例子:

ConnectionStringsSectionconnSection = (ConnectionStringsSection)m_Config.GetSection("connectionStrings");?

connSection.ConnectionStrings[name].ConnectionString = connectionString;

m_Config.Save();

3.4自定义配置节的操作

利用Configuration的GetSection()方法,获取后操作。

3.5实例

直接上源代码:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Configuration;

namespace TestConfig1

{

class ConfigMgr

{

///如需要使用ConfigurationManager类还必须在“引用”中,引用

System.Configuration

///ConfigurationSettings只是针对旧版的兼容(向下兼容),不建议使用

///配置文件

privatestatic Configuration m_Config =

ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None ); //读取当前程序的配置文件

///

///

///

///

///

publicstaticstring GetAppSetting(string key)

{

string s = "";

try

{

s = ConfigurationManager.AppSettings[key];

}

catch { }

return s;

}

publicstaticstring GetConnString(string name)

{

string s = "";

try

{

if (ConfigurationManager.ConnectionStrings[name] != null)

s =

ConfigurationManager.ConnectionStrings[name].ToString();

}

catch { }

return s;

}

///

///定义设置当前或者其他应用程序配置文件中的appSettings节点,通过AppSettings属性

///

///keyName

///keyValue

publicstaticbool SetAppSetting1(string key, string value)

{

try

{

if (m_Config.AppSettings.Settings[key] != null)

{

m_Config.AppSettings.Settings[key].Value = value;

}

else

{

m_Config.AppSettings.Settings.Add(key, value);

}

m_Config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings");

returntrue;

}

catch

{

returnfalse;

}

}

///

///定义设置当前或者其他应用程序配置文件中的appSettings节点

///

///keyName

///keyValue

publicstaticvoid SetAppSetting(string key, string value)

{

AppSettingsSection appSettings =

(AppSettingsSection)m_Config.GetSection("appSettings");

if (appSettings.Settings[key] != null)

{

appSettings.Settings[key].Value = value;

m_Config.Save();

}

else

{

appSettings.Settings.Add(key, value);

m_Config.Save();

}

ConfigurationManager.RefreshSection("appSettings");

}

///

///定义设置当前或者其他应用程序配置文件中的connectionStrings节点,通过ConnectionStrings属性

///

///keyName

///keyValue

publicstaticbool SetConnectionString1(string name,

string connectionString, string providerName = "System.Data.SqlClient") {

try

{

if (m_Config.ConnectionStrings.ConnectionStrings[name] != null)

{

m_Config.ConnectionStrings.ConnectionStrings[name].ConnectionString = connectionString;

m_Config.ConnectionStrings.ConnectionStrings[name].ProviderName = providerName;

//m_Config.Save(ConfigurationSaveMode.Modified);

}

else

{

ConnectionStringSettings connSetting = new ConnectionStringSettings(name, connectionString, providerName);

m_Config.ConnectionStrings.ConnectionStrings.Add(connSetting);

//config.Save(ConfigurationSaveMode.Modified);

}

m_Config.Save(ConfigurationSaveMode.Modified);

ConfigurationManager.RefreshSection("connectionStrings");

returntrue;

}

catch

{

returnfalse;

}

}

///

///定义设置当前或者其他应用程序配置文件中的connectionStrings节点

///

///keyName

///keyValue

publicstaticvoid SetConnectionString(string name,

string connectionString, string providerName = "System.Data.SqlClient") {

//通过获取对应的节来操作实现

//providerName = "System.Data.SqlClient"

ConnectionStringsSection connSection =

(ConnectionStringsSection)m_Config.GetSection("connectionStrings"); if (connSection.ConnectionStrings[name] != null)

{

connSection.ConnectionStrings[name].ConnectionString = connectionString;

m_Config.Save();

}

else

{

ConnectionStringSettings connSettings =

new ConnectionStringSettings(name, connectionString, providerName); connSection.ConnectionStrings.Add(connSettings);

m_Config.Save();

}

ConfigurationManager.RefreshSection("appSettings");

}

///

///

///

///

publicstaticbool RemoveAppSetting(string key)

{

try

{

if (m_Config.AppSettings.Settings[key] != null)

{

m_Config.AppSettings.Settings.Remove(key);

//m_Config.Save(ConfigurationSaveMode.Modified);

}

m_Config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("appSettings");

returntrue;

}

catch

{

returnfalse;

}

}

///

///

///

///

publicstaticbool RemoveConnString(string name)

{

try

{

if (m_Config.ConnectionStrings.ConnectionStrings[name] != null) {

m_Config.ConnectionStrings.ConnectionStrings.Remove(name);

//m_Config.Save(ConfigurationSaveMode.Modified);

}

m_Config.Save(ConfigurationSaveMode.Modified); ConfigurationManager.RefreshSection("connectionStrings"); returntrue;

}

catch

{

returnfalse;

}

}

}

}

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

如何更改用户配置文件和程序设置的默认位置

如何更改用户配置文件和程序设置的默认位置 文章编号: 322014 最后修改: 2006年4月20日 移动用户的Documents and Settings 文件夹 概要 本文介绍了如何移动用户的Documents and Settings 文件夹。 所有用户的配置文件信息均存储在“%系统驱动器%\Documents and Settings”文件夹中。如果尝试在Windows 中移动或重命名用户的Documents and Settings 文件夹,您将收到以下错误消息:Documents and Settings 是Windows 系统文件夹,Windows 需要它才能正常运行,因此不能移动或重命名。 注意:本文包含有关Microsoft 不支持的配置的信息。Microsoft 提供此信息仅供参考;Microsoft 不能保证此配置可以正常运行。 警告:Microsoft 强烈建议不要重命名任何系统文件夹。如果重命名系统文件夹,可能会导致系统故障或计算机性能不稳定。使用本文中的信息之前,请备份您的计算机。 回到顶端 移动用户的Documents and Settings 文件夹 警告:注册表编辑器使用不当可导致严重问题,可能需要重新安装操作系统。Microsoft 不能保证您可以解决因注册表编辑器使用不当而导致的问题。使用注册表编辑器需要您自担风险。 注意:此方法并不会重新定位重要的Windows 组件。此方法仅用于移动用户特定的数据。 1. 确定用户的配置文件路径。确定配置文件路径有两种方法。可以使用以下两种方法中的任一种(首选用户SID 方法):? 用户SID 方法:a. 使用Windows Server Resource Kit 中的Getsid 工具获取SID。使用与以下示例类似的语法: getsid \\server1username \\server1username b. 获取SID 之后,使用Regedit.exe 或Regedt32.exe 在以下注册表项之下选择用户的SID: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList ? 用户路径设置方法:a. 以用户身份登录到计算机,然后在命令提示符处键入set。记下USERPROFILE 的设置,然后关闭命令提示符窗口。 b. 以计算机管理员的身份登录。 c. 使用注册表编辑器将USERPROFILE 设置添加到以下注册表项中: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList d. 单击注册表项,然后单击“编辑”菜单上的“查找”。 e. 在“查找”框中,键入USERPROFILE 设置的值,然后单击“查找下一个”。 2. 更改ProfilesDirectory 值以使用您希望在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList 注册表项中使用的新路径。 3. 退出注册表编辑器,然后以用户身份登录。在命令提示符处键入set,以确认路径已更改。

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()

C语言文件流操作函数大全

clearerr(清除文件流的错误旗标) 相关函数feof 表头文件#include 定义函数void clearerr(FILE * stream); 函数说明clearerr()清除参数stream指定的文件流所使用的错误旗标。 返回值 fclose(关闭文件) 相关函数close,fflush,fopen,setbuf 表头文件#include 定义函数int fclose(FILE * stream); 函数说明fclose()用来关闭先前fopen()打开的文件。此动作会让缓冲区内的数据写入文件中,并释放系统所提供的文件资源。 返回值若关文件动作成功则返回0,有错误发生时则返回EOF并把错误代码存到errno。错误代码EBADF表示参数stream非已打开的文件。 范例请参考fopen()。 fdopen(将文件描述词转为文件指针) 相关函数fopen,open,fclose 表头文件#include 定义函数FILE * fdopen(int fildes,const char * mode); 函数说明fdopen()会将参数fildes 的文件描述词,转换为对应的文件指针后返回。参数mode 字符串则代表着文件指针的流形态,此形态必须和原先文件描述词读写模式相同。关于mode 字符串格式请参考fopen()。 返回值转换成功时返回指向该流的文件指针。失败则返回NULL,并把错误代码存在errno 中。 范例 #include main() { FILE * fp =fdopen(0,”w+”); fprintf(fp,”%s\n”,”hello!”); fclose(fp); } 执行hello! feof(检查文件流是否读到了文件尾) 相关函数fopen,fgetc,fgets,fread 表头文件#include 定义函数int feof(FILE * stream);

读取配置文件和修改配置文件(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));

配置文件使用说明

(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#读写配置文件

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); } /// ///读取配置文件 /// ///

Config配置文件

menu_translation both——设置下拉菜单时为中英文双语菜单tol_mode nominal——设置显示的尺寸没有公差 trail_dir D:\Program Files\trail——设置轨迹文件存放路径 web_browser_homepage about:blank——设置浏览器首页为空白页(关闭croe启动时登陆ptc 网页)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_places3——设置所有模型模式中非角度尺寸的缺省小数位数default_ang_dec_places2——设置角度尺寸小数位数 sketcher_dec_places2——设置草绘时的尺寸小数位数 default_draw_scale1:1——设置工程图中缺省的绘图比例,即插入一般视图时默认为1比1save_drawing_picture_file embed——设置将图片嵌入工程图中,可以实现工程图打开时预览search_path_file D:\Program Files\peizhi\search.pro——设置搜索文件tangent_edge_display no——设置相切边不显示 set_menu_width12——设置下拉菜单的宽度 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_factor40——设置系统坐标XYZ及基准面显示的字体大小(数值小显示就大)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格式文件时,保留原模型颜色

C语言文件操作大全

1.创建文件夹 //using System.IO; Directory.CreateDirectory(%%1); 2.创建文件 //using System.IO; File.Create(%%1); 3.删除文件 //using System.IO; File.Delete(%%1); 4.删除文件夹 //using System.IO; Directory.Delete(%%1); 5.删除一个目录下所有的文件夹 //using System.IO; foreach (string dirStr in Directory.GetDirectories(%%1)) { DirectoryInfo dir = new DirectoryInfo(dirStr); ArrayList folders=new ArrayList(); FileSystemInfo[] fileArr = dir.GetFileSystemInfos(); for (int i = 0; i < folders.Count; i++) { FileInfo f = folders[i] as FileInfo; if (f == null) { DirectoryInfo d = folders[i] as DirectoryInfo; d.Delete(); } } } 6.清空文件夹 //using System.IO; Directory.Delete(%%1,true); Directory.CreateDirectory(%%1); 7.读取文件 //using System.IO; StreamReader s = File.OpenText(%%1); string %%2 = null; while ((%%2 = s.ReadLine()) != null){

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); } //新建一个连接字符串实例

proe4.0配置文件和一些有用的设置

proe4.0配置文件和一些有用的设置 系统环境配置文件(config.pro) 这是ProENGINEER软件系统提供给用户定制自己工作环境的配置文件。它是一个文本文件,利用这个文件 用户可以定制很多标准设置,如定制菜单、公差显示模式、尺寸单位、映射键(Mapkey)、计算精度、工 程图控制等等。一般在企业或公司把它定制为标准文件,作为大家共同的工作环境,在应用产品数据管理 (PDM)和协同设计过程中便于交流和数据共享。 ProENGINEER软件启动过程中会在几个不同的位置读入配置文件。当在不同的位置分别读入多个配置文件 时,如果遇到同一个选项的参数取值不同,则以最后读入的值为准。但有一个例外,就是受系统保护的 config.sup文件。下面详细说明配置文件及其几个存放位置。 按照加载顺序,第一个检索并加载的是Config.sup文件,它是受到系统保护的配置文件,优先级别较高, 其他的config.pro配置文件与其相同的配置选项不能覆盖他们。如果在其他的config.pro 文件中存在同一 个选项设有不同的参数,则以Config.sup文件为准而忽略其它,因此该文件中不应该有重复设定的选项。 使用此文件,用户可以创建并共享企业或公司的标准配置,其存放位置在.text下,它同样也是文本文 件,需要用户自己创建,扩展名必须是.sup。 第二个加载位置在同样的.text目录下查找,如果存在config.pro文件,加载之。 第三个加载的置在你的系统用户的根目录中(UNIX操作系统),对使用NT操作系统的用户而言,使用启动 目录会更方便些。 下面详细说明一下启动目录。 在ProE软件安装过程中会指定一个启动目录,如dptcproeWildfire_start,笔者建议把公司的标准配 置放在config.sup文件中,而把个性化的配置文件config.pro放在启动目录中,这样在ProE启动时会先 加载config.sup文件,然后加载config.pro文件。这样,即共享了公司的标准配置,又达到了个性化设置 的目的。另外,一些环境配置文件如config.win、颜色配置文件color.map等也应该放在

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

WORD文档操作大全

WORD文档操作大全 1. 问:WORD 里边怎样设置每页不同的页眉?如何使不同的章节显示的页眉不同? 答:分节,每节可以设置不同的页眉。文件――页面设置――版式――页眉和页脚――首页不同。 2. 问:请问word 中怎样让每一章用不同的页眉?怎么我现在只能用一个页眉,一改就全部改了? 答:在插入分隔符里,选插入分节符,可以选连续的那个,然后下一页改页眉前,按一下“同前”钮,再做的改动就不影响前面的了。简言之,分节符使得它们独立了。这个工具栏上的“同前”按钮就显示在工具栏上,不过是图标的形式,把光标移到上面就显示出”同前“两个字来。 3. 问:如何合并两个WORD 文档,不同的页眉需要先写两个文件,然后合并,如何做? 答:页眉设置中,选择奇偶页不同/与前不同等选项。 4. 问:WORD 编辑页眉设置,如何实现奇偶页不同? 比如:单页浙江大学学位论文,这一个容易设;双页:(每章标题),这一个有什么技巧啊? 答:插入节分隔符,与前节设置相同去掉,再设置奇偶页不同。 5. 问:怎样使WORD 文档只有第一页没有页眉,页脚? 答:页面设置-页眉和页脚,选首页不同,然后选中首页页眉中的小箭头,格式-边框和底纹,选择无,这个只要在“视图”――“页眉页脚”,其中的页面设置里,不要整个文档,就可以看到一个“同前”的标志,不选,前后的设置情况就不同了。 6. 问:如何从第三页起设置页眉? 答:在第二页末插入分节符,在第三页的页眉格式中去掉同前节,如果第一、二页还有页眉,把它设置成正文就可以了 ●在新建文档中,菜单―视图―页脚―插入页码―页码格式―起始页码为0,确定;●菜单―文件―页面设置―版式―首页不同,确定;●将光标放到第一页末,菜单―文件―页面设置―版式―首页不同―应用于插入点之后,确定。第2 步与第三步差别在于第2 步应用于整篇文档,第 3 步应用于插入点之后。这样,做两次首页不同以后,页码从第三页开始从1 编号,完成。 7. 问:WORD 页眉自动出现一根直线,请问怎么处理? 答:格式从“页眉”改为“清除格式”,就在“格式”快捷工具栏最左边;选中页眉文字和箭头,格式-边框和底纹-设置选无。 8. 问:页眉一般是---------,上面写上题目或者其它,想做的是把这根线变为双线,WORD 中修改页眉的那根线怎么改成双线的? 答:按以下步骤操作去做: ●选中页眉的文字,包括最后面的箭头●格式-边框和底纹●选线性为双线的●在预览里,点击左下小方块,预览的图形会出现双线●确定▲上面和下面自己可以设置,点击在预览周围的四个小方块,页眉线就可以在不同的位置。 9. 问:Word 中的脚注如何删除?把正文相应的符号删除,内容可以删除,但最后那个格式还在,应该怎么办? 答:步骤如下:1、切换到普通视图,菜单中“视图”――“脚注”,这时最下方出现了尾注的编辑栏。2、在尾注的下拉菜单中选择“尾注分隔符”,这时那条短横线出现了,选中它,删除。3、再在下拉菜单中选择“尾注延续分隔符”,这是那条长横线出现了,选中它,删除。

用户配置文件操作详解

用户配置文件操作详解 系统崩溃了怎么办?重装系统!但每次重装系统时大家是否始终感觉新装系统的电脑操作不方便呢?例如进论坛要重新输入帐号密码,桌面背景也不是自己喜欢的图案,以前收藏的网页也不知所踪……其实面对这些问题,我们只要备份了用户配置文件,我们所有的个性化设置都能在系统重装后轻松恢复过来。 Windows 2000/XP/2003等操作系统都提供了非常完善的用户管理机制,每个登陆计算的账户都会有独立的文件夹用于保存该登陆账号的个性化信息,这种独立分开的方式也为我们备份和保护个人数据提供了可能。 1.找到个人数据的家 在了解如何备份个人数据之前我们首先要了解用户配置文件到底是如何工作的,只有了解了它的工作原理我们才能实现个人数据的轻松、快速备份。 当我们的操作系统(Windows 2000/XP/2003)安装完成后,在首次登录的时候操作系统会为当前登录的帐号建立一个用户配置文件夹,默认这个文件夹会位于“C:\Documents and Settings”下,我们可以选择“开始”-“运行”,输入“%SystemDrive%\Documents and Settings”即可打开该文件夹。这个文件夹默认会使用当前登录的用户名作为名字,但是如果在“Documents and Settings”文件夹中存在与当前登录用户名相同的文件夹,系统就会修改这个文件夹的名字以避免重复。例如,当前登录的用户名为ABC,默认系统会在第一次登陆的时候建立ABC文件夹,但是如果ABC文件夹存在则会尝试将名字改为“ABC.计算机名”,如果“ABC.计算机名”也存在,Windows则会尝试将文件夹命名为“ABC.计算机名.000”,如果仍然存在这样命名的文件夹则系统就会尝试“ABC.计算机名.001”、“ABC.计算机名.002”等。 2.挽救丢失的个人数据 有了上边的介绍的原理,接下来我们再尝试恢复丢失的用户数据就不再是一件非常困难的事情了,首先我们来解决开机后桌面背景、快捷方式和我的文档中数据统统丢失的问题。 Step 1 如果你只是想找回原来配置文件中的一些数据可以进入“Documents and Settings”文件夹,然后按照时间排序,你将可以看到多个以你当前用户名开头的文件夹,选择时间相对较久的那个并尝试双击进入,如果提示拒绝访问则可以注销计算机使用“administrator”帐号登录,登录后重新找到这个文件夹并在上边单击鼠标右键,选择“属性”-“安全”(如果找不到“安全”标签,可以选择“工具”-“文件夹选项”,取消使用简单文件共享前边的勾选),然后单击里边的“高级”按钮,在弹出的窗口中选择“所有者”,在里边选中“administrator”并勾选中下边的“替换子容器及对象的所有者”,如图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.sodocs.net/doc/d09381006.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。

配置文件更改

找到"drawing_setup_file" drawing_units mm drawing_text_height 3.5 设置缺省文本的缺省高度,如注释中的文字,标注中的数值大小。 text_width_factor 0.7 设置文本的高度和宽度的比例 broken_view_offset 3 设置破断视图两破断线之间的距离projection_type first_angle 设置视图的投影方向为第一角法(国标要求用第一角法,日本等国用第三角法 hlr_for_threads yes thread_standard std_iso_imp_assy 以上两项设置螺纹表示方法按国标形式表示,正面以3/4圆方式表示 blank_zero_tolerance no 设置公差值有一项为0时,是否去掉0。比如尺寸公差中有上偏差+0.02和下偏差0,

如果设为yes则只显示+0.02,0不显示 draw_arrow_style filled 设置箭头为实心箭头 draw_arrow_length 3.5 设置箭头(实心三角形)的长度 draw_arrow_width 1 设置箭头(实心三角形)的宽度 line_style_standard std_iso 设置工程图中文本的缺省颜色,比如标注 的数值颜色、注释文字的颜色。 std_iso为标注界线为黄色,但数值为绿色,注释文字也为绿色。 同时控制详细视图、局部视图的边界线颜 色为黄色,打印为细实线 sym_flip_rotated_text yes 设置文本方向是否锁定方向不旋转,比如 粗糙度的方向。 tol_display yes 设置公差的显示,此项要配合config.pro中

相关主题