博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C# 读写ini配置文件的类
阅读量:5306 次
发布时间:2019-06-14

本文共 3673 字,大约阅读时间需要 12 分钟。

 

写程序的时候经常会遇到读写配置文件的情况,使用这个类可以方便的读写ini文件.

ContractedBlock.gif
ExpandedBlockStart.gif
View Code
1 using System;   2 using System.Collections.Generic;   3 using System.Linq;   4 using System.Text;   5 using System.IO;   6 using System.Runtime.InteropServices;   7   8 namespace MyLibrary   9 {
10 /// 11 /// 用于读写ini配置文件, 12 /// 需建立实例,直接使用其中的静态方法就可以了 13 /// 14 class IniFile 15 {
16 private string fileName; 17 public IniFile(string filename) 18 {
19 fileName = filename; 20 } 21 22 [DllImport("kernel32")] 23 private static extern int GetPrivateProfileInt( 24 string lpAppName,// 指向包含 Section 名称的字符串地址 25 string lpKeyName,// 指向包含 Key 名称的字符串地址 26 int nDefault,// 如果 Key 值没有找到,则返回缺省的字符串的地址 27 string lpFileName 28 ); 29 [DllImport("kernel32")] 30 private static extern int GetPrivateProfileString( 31 string lpAppName,// 指向包含 Section 名称的字符串地址 32 string lpKeyName,// 指向包含 Key 名称的字符串地址 33 string lpDefault,// 如果 Key 值没有找到,则返回缺省的字符串的地址 34 StringBuilder lpReturnedString,// 返回字符串的缓冲区地址 35 int nSize,// 缓冲区的长度 36 string lpFileName 37 ); 38 [DllImport("kernel32")] 39 private static extern bool WritePrivateProfileString( 40 string lpAppName,// 指向包含 Section 名称的字符串地址 41 string lpKeyName,// 指向包含 Key 名称的字符串地址 42 string lpString,// 要写的字符串地址 43 string lpFileName 44 ); 45 46 /// 47 /// 以配置文件中int型参数的值 48 /// 49 /// 参数所在的区段 50 /// 参数的关键字 51 /// def为未找到相应key时返回的缺省值 52 ///
返回ini型的参数
53 public int GetInt(string section, string key, int def) 54 {
55 return GetPrivateProfileInt(section, key, def, fileName); 56 } 57 /// 58 /// 获取ini配置文件中string型的参数 59 /// 60 /// 参数所在的区段 61 /// 参数的关键字 62 /// def为未找到相应key时返回的缺省值 63 ///
返回string型的参数
64 public string GetString(string section, string key, string def) 65 {
66 StringBuilder temp = new StringBuilder(1024); 67 GetPrivateProfileString(section, key, def, temp, 1024, fileName); 68 return temp.ToString(); 69 } 70 /// 71 /// 写入int型数据到配置文件 72 /// 73 /// 参数所在的区段 74 /// 参数的关键字 75 /// 要写入的值 76 public void WriteInt(string section, string key, int iVal) 77 {
78 WritePrivateProfileString(section, key, iVal.ToString(), fileName); 79 } 80 /// 81 /// 写入string型数据到配置文件 82 /// 83 /// 参数所在的区段 84 /// 参数的关键字 85 /// 要写入的值 86 public void WriteString(string section, string key, string strVal) 87 {
88 WritePrivateProfileString(section, key, strVal, fileName); 89 } 90 /// 91 /// 删除key 92 /// 93 /// 参数所在的区段 94 /// 参数的关键字 95 public void DelKey(string section, string key) 96 {
97 WritePrivateProfileString(section, key, null, fileName); 98 } 99 /// 100 /// 删除区段 101 /// 102 /// 参数所在的区段 103 public void DelSection(string section) 104 {
105 WritePrivateProfileString(section, null, null, fileName); 106 } 107 } 108 }

转载于:https://www.cnblogs.com/liuxia19872003/archive/2011/10/12/2208781.html

你可能感兴趣的文章
【模板】对拍程序
查看>>
【转】redo与undo
查看>>
解决升级系统导致的 curl: (48) An unknown option was passed in to libcurl
查看>>
Java Session 介绍;
查看>>
spoj TBATTLE 质因数分解+二分
查看>>
Django 模型层
查看>>
dedecms讲解-arc.listview.class.php分析,列表页展示
查看>>
Extjs6 经典版 combo下拉框数据的使用及动态传参
查看>>
【NodeJS】http-server.cmd
查看>>
研磨JavaScript系列(五):奇妙的对象
查看>>
面试题2
查看>>
selenium+java iframe定位
查看>>
P2P综述
查看>>
第五章 如何使用Burp Target
查看>>
Sprint阶段测试评分总结
查看>>
sqlite3经常使用命令&语法
查看>>
linux下编译openjdk8
查看>>
【python】--迭代器生成器装饰器
查看>>
Pow(x, n)
查看>>
安卓当中的线程和每秒刷一次
查看>>