C# 读写Ini文件
ini文件在Win95以前比较盛行,之后由于出册表等技术的出现,ini技术主键退居二线,不过对于一些小项目,读写ini文件还是很适用的。
Windows API提供了读写配置文件的操作,在C#程序中只要导入相应的API即可。例如GetPrivateProfileString()方法,在MSDN查得原型如下:
DWORD GetPrivateProfileString(LPCTSTR lpAppName, // p nameLPCTSTR lpKeyName, // key nameLPCTSTR lpDefault, // default stringLPTSTR lpReturnedString, // destination bufferDWORD nSize, // size of destination bufferLPCTSTR lpFileName // initialization file name
);
由于C#和C++数据类型不同,在导入win32 API时需要做相应的转换,并且要导入相关的类。如下所示:
[DllImport("kernel32")]private static extern int GetPrivateProfileString(string p, string key, string defVal, StringBuilder retVal, int size, string filePath);
同理导入另一个函数
[DllImport("kernel32")]private static extern long WritePrivateProfileString(string p, string key, string val, string filePath)
在main函数测试如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading.Tasks;namespace DoingIni
{class Program{[DllImport("kernel32")]private static extern int GetPrivateProfileString(string p, string key, string defVal, StringBuilder retVal, int size, string filePath);[DllImport("kernel32")]private static extern long WritePrivateProfileString(string p, string key, string val, string filePath);/// <summary> /// 读取INI文件 /// </summary> /// <param name="p">项目名称(如 [p] )</param> /// <param name="skey">键</param> /// <param name="path">路径</param> static string IniReadValue(string p, string skey, string path){StringBuilder temp = new StringBuilder(500);int i = GetPrivateProfileString(p, skey, "", temp, 500, path);return temp.ToString();}/// <summary>/// 写入ini文件/// </summary>/// <param name="p">项目名称</param>/// <param name="key">键</param>/// <param name="value">值</param>/// <param name="path">路径</param>static void IniWrite(string p, string key, string value, string path){WritePrivateProfileString(p, key, value, path);}static void Main(string[] args){IniWrite("上海", "东方明珠", "浦东新区", "f:/test.ini");IniWrite("上海", "上海中心大厦", "浦东新区", "f:/test.ini");IniWrite("湖南", "张家界景区", "张家界", "f:/test.ini");IniWrite("湖南", "凤凰古城", "吉首", "f:/test.ini");IniWrite("湖北", "武当山", "十堰", "f:/test.ini");IniWrite("湖北", "黄鹤楼", "武昌", "f:/test.ini");IniWrite("湖北", "古隆中", "襄阳", "f:/test.ini");IniWrite("江苏", "瘦西湖", "扬州", "f:/test.ini");IniWrite("江苏", "中山陵", "南京", "f:/test.ini");IniWrite("上海", "城隍庙", "浦东新区", "f:/test.ini");string str = IniReadValue("湖南", "凤凰古城", "f:/test.ini");Console.WriteLine(str);IniReadValue("上海", null, "f:/test.ini");删除test.ini文件中A 段落中所有键(没有键,也就没有值了)//IniWrite("A", null, null, "f:/test.ini");删除test.ini文件中所有段落//IniWrite(null, null, null, "f:/test.ini");Console.ReadKey();}}
}
结果如下:
C# 读写Ini文件相关推荐
- VC中读写ini文件
我们写的程序当中,总有一些配置信息需要保存下来,以便完成程序的功能,最简单的办法就是将这些信息写入INI文件中,程序初始化时再读入.具体应用如下: 一.将信息写入.INI文件中. 1.所用的WINAP ...
- vbs脚本读写INI文件
vbs脚本读写INI文件 转载于:https://www.cnblogs.com/bull_think/archive/2012/08/21/2649838.html
- C#学习笔记——读写ini文件
1: using System; 2: using System.Collections.Generic; 3: using System.Linq; 4: using System.Text; 5: ...
- C#关于读写INI文件
C#关于读写INI文件 什么是ini文件就是一个配置文件,一般把数据库等配置信息放进去,然而,改变数据库的密码,数据库名称,ip等,不要改源码重新编译,只需要用记事本打开set.ini 文件,修改保存 ...
- 在 WinCe 平台读写 ini 文件
在上篇文章开发 windows mobile 上的今日插件时,我发现 wince 平台上不支持例如 GetPrivateProfileString 等相关 API 函数.在网络上我并没有找到令我满意的 ...
- 十、封装python3读写ini文件类
自己编写封装的python3读写ini文件类. main.py # -*- coding: utf-8 -*- import os import configparserclass OperateIn ...
- 在.NET中读写INI文件 ——兼谈正则表达式的应用
INI文件是Windows平台上的一种较常用的软件配置文件格式,Windows应用程序常常使用它来保存一些配置信息.它一般是由数个包含key-value对的Section组成,每个key-value对 ...
- 转:c++builder读写INI文件
转:c++builder读写INI文件 //包含文件 #include <inifiles.hpp> //写文件 TIniFile *ini; ini=new TIniFile(Chang ...
- (vc)分享一个读写ini文件的类,支持多种数据类型的读写,二进制数据都能保存和读取...
读写ini文件的类叫CIni,有ini.h和ini.cpp两个文件组成. ini.h文件: #pragma once#define SER_GET(bGet,value) SerGet(bGe ...
最新文章
- Nmap帮助文档解释
- 一起谈.NET技术,Visual Studio 2010 中的代码约定设置
- Intel Realsense 如何获取已连接所有摄像头的序列号参数?context() query_devices() size() camera_info device_list
- 笔记-项目立项管理-项目的可行性研究-可行性研究内容
- Spring Cache
- Unable to simultaneously satisfy constraints.
- 千亿级市场赛道,阿里云视频云拿下 “三连冠”
- 【毕业前夕,畅谈科研】一个清华土著的科研感想
- 网页文字无法免费复制的几种解决方法
- git 简单使用 基本操作
- linux中删除mysql用户_linux系统下mysql添加用户、删除用户、授权、修改密码等sql命令使用...
- searchIndexer.exe占用过高CPU
- 生产者 消费者模式
- 传统和互联网门禁系统的创新应用和价值探讨
- java发送电子邮件
- Keil MDK5工程文件不可修改(文件符号上带一个黄色的钥匙)
- 利用YAKE进行文档关键词提取
- JAVA 北京大学GPA计算转换
- pytest执行用例报“Skipped: no variables file“跳过执行case问题解决
- TabLayout的属性介绍
热门文章
- QT练习9 Dialog学习
- 2.6. PostgreSQL表之间连接
- ASP.NET 连接MySql数据库
- linq中的castT()及OfTypeT()
- 程序员求职之道(《程序员面试笔试宝典》)之学业与求职,孰轻孰重?
- NHibernate学习笔记(二):one-to-one关系映射
- mac自带邮箱导出邮件_如何将电子邮件从Mac Mail导出到Notes应用程序
- 在Windows Media Center中收听超过100,000个广播电台
- 唤醒计算机运行此任务_如何停止Windows 8唤醒计算机以运行维护
- java获取前端json数据_java如何获取前端ajax传来的json对象