C#读写ini配置文件

C#读写ini配置文件,第1张

NET Framework 类库未提供读写ini文件的相应类 不过可以使用WinAPI来处理INI文件的读写 代码很简单 如下

首先有两个API函数需放在你的class中且只能如此 放在method或(class外namespace内) 都会出现编译错误

using System Runtime InteropServices;

[DllImport( kernel )]

private static extern long WritePrivateProfileString(string section string key string val string filePath);

[DllImport( kernel )]

private static extern long GetPrivateProfileString(string section string key string def StringBuilder retVal int size string filePath);

WritePrivateProfileString方法说明

功能 将信息写入ini文件

返回值 long 如果为 则表示写入失败 反之成功

参数 (section):写入ini文件的某个小节名称(不区分大小写)

参数 (key):上面section下某个项的键名(不区分大小写)

参数 (val):上面key对应的value

参数 (filePath):ini的文件名 包括其路径(example: c:\config ini ) 如果没有指定路径 仅有文件名 系统会自动在windows目录中查找是否有对应的ini文件 如果没有则会自动在当前应用程序运行的根目录下创建ini文件

ini文件结构Example

[JXCDB]    小节名(section)

server=     server是JXCDB下的某个键 是server键的值(下同)

name=sa

pwd=

dbName=JXC

GetPrivateProfileString方法使用说明

功能 从ini文件中读取相应信息

返回值 返回所取信息字符串的字节长度

参数 (section):某个小节名(不区分大小写) 如果为空 则将在retVal内装载这个ini文件的所有小节列表

参数 (key):欲获取信息的某个键名(不区分大小写) 如果为空 则将在retVal内装载指定小节下的所有键列表

参数 (def):当指定信息 未找到时 则返回def 可以为空

参数 (retVal):一个字串缓冲区 所要获取的字符串将被保存在其中 其缓冲区大小至少为size

参数 (size):retVal的缓冲区大小(最大字符数量)

参数 (filePath):指定的ini文件路径 如果没有路径 则在windows目录下查找 如果还是没有则在应用程序目录下查找 再没有 就只能返回def了

详细使用Example

首先先创建一个ini文件 并保存信息

WritePrivateProfileString( JXCDB server Application StartupPath + \\JXC_Server ini );

WritePrivateProfileString( JXCDB name txtName Text Trim() Application StartupPath + \\JXC_Server ini );

WritePrivateProfileString( JXCDB pwd txtPwd Text Trim() Application StartupPath + \\JXC_Server ini );

WritePrivateProfileString( JXCDB DBName JXC Application StartupPath + \\JXC_Server ini );

说明 Application StartupPath获取当前项目编译出的exe文件的绝对路径(不包含exe文件的文件名)

读取ini文件

StringBuilder stringBud = new StringBuilder( );

GetPrivateProfileString( JXCDB server 还未设置服务器IP stringBud Application StartupPath + \\JXC_Server ini );

此时所读取的server键对应的值已被保存在stringBud中 只需:

return stringBud ToString();

lishixinzhi/Article/program/net/201311/13445

// 读取一般的属性文件

FileInputStream fin=new FileInputStream("myini"); // 打开文件

Properties props=new Properties();                 // 建立属性类

propsload(fin);                                   // 读入文件

finclose();                                       // 关闭文件

dim read,str,file

file="c:\cini" '文件完整路径

set open=createobject("scriptingfilesystemobject")

set shell=createobject("WscriptShell")

read=openopentextfile(file)readall

for each i in split(read,vbcrlf)

if instr(i,"s1=")>0 then str=split(i,"s1=")(1)

next

shellrun "aexe /a /n " & str

'保存为vbs类型文件

确定你的INI文件可以被访问到吗如果程序确实找到了INI文件的话,那就是你这个INI文件对应的Section和Key下面是空的(没有值)。请为你的INI文件加入相应的Section和Key再试试看。

GetPrivateProfileString(Section, Key, "读取错误", temp, 255, inipath); 表示如果读取INI文件失败(为空)就返回"读取错误"。

一个关键命令-----取配置节名()

版本 2

支持库 spec

子程序 _按钮1_被单击

局部变量 所有节名数组, 文本型, , "0", 此数组存储的就是配置文件内所有的节

局部变量 i, 整数型

所有节名数组 = 取配置节名 (“D:\1ini”) ' 根据自己的需要自己更改路径,

调试输出 (所有节名数组)

你是想从指定路径中取文件名呢,还是想寻找硬盘里的ini文件呢?

我是初学者,寻找硬盘文件我不会哦!

下面是可以根据文件路径字符串取出文件名

如:E:\Visual Studio\configini,取文件名结果是:configini

取目录名结果是:E:\Visual Studio\

        public static string GetFilePath(string path) {

            //取目录名

            int i = pathLastIndexOf("\\") + 1;

            return pathSubstring(0, i);

        }//取目录名

        public static string GetFileName(string path) {

            //取文件名

            int i = pathLastIndexOf("\\") + 1;

            return pathSubstring(i, pathLength - i);

        }//取文件名

和DLL没有关系,你编译DLL的代码里面读取ini就好了

var

ini_path,ini_filename:string;

ini_file:Tinifile;

begin

ini_path:=extractfilepath(applicationExeName); //路径

ini_filename:=ini_path+'xxxini';//路径+文件民称

ini_file:=TinifileCreate(ini_filename);

//写入

ini_filewritestring('节点','关键字',变量或字符串值);

ini_filewriteinteger('节点','关键字',变量或整型值);

ini_filewritebool('节点','关键字',变量或True或False);

// 读取

ini_fileReadstring('节点','关键字',缺省值);

//删除关键字

ini_fileDeleteKey('节点','关键字');//关键字删除

ini_fileEraseSection('节点');// 节点删除

//节点 *** 作:

inifilereadsection('节点',TStrings变量);

//可将指定小节中的所有关键字名读取至一个字符串列表变量中;

inifilereadsections(TStrings变量);//可将INI文件中所有小节名读取至一个字符串列表变量中去。

inifilereadsectionvalues('节点',TStrings变量);

//可将INI文件中指定小节的所有行(包括关键字、=、值)读取至一个字符串列表变量中去。

//释放

inifiledistory;或inifilefree;

end;

以上就是关于C#读写ini配置文件全部的内容,包括:C#读写ini配置文件、Java中如何设置读取ini配置文件、批处理读取ini文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9508834.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存