C#操作INI配置文件示例

源文件地址:http://pan.baidu.com/share/link?shareid=2536126078&uk=1761850335 创建如图所示的控件: 

源代码:

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Runtime.InteropServices;

namespace WindowsFormsApplication3

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

[DllImport("kernel32.dll")]

private static extern long WritePrivateProfileString(string section, string key, string value, string filepath);

[DllImport("kernel32.dll")]

private static extern int GetPrivateProfileString(string section,string key,string def,StringBuilder returnvalue,intbuffersize,string filepath);

private string IniFilePath;

private void Form1_Load(object sender, EventArgs e)

{

comboBox1.Text = "男";

for (int i = 1; i <= 100; i++)

{

comboBox2.Items.Add(i.ToString());

}

comboBox2.Text = "18";

IniFilePath = Application.StartupPath + "\\Config.ini";

}

private void button1_Click(object sender, EventArgs e)

{

if ((textBox1.Text.Trim() != "") && (textBox2.Text.Trim() != ""))

{

string Section = "Information";

try

{

WritePrivateProfileString(Section, "Name", textBox1.Text.Trim(), IniFilePath);

WritePrivateProfileString(Section, "Gender", comboBox1.Text, IniFilePath);

WritePrivateProfileString(Section, "Age", comboBox2.Text, IniFilePath);

WritePrivateProfileString(Section, "Region", textBox2.Text.Trim(), IniFilePath);

}

catch (Exception ee)

{

MessageBox.Show(ee.Message);

}

}

else

{

MessageBox.Show("姓名或地区不能为空!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Warning);

}

}

private void button2_Click(object sender, EventArgs e)

{

string outString;

try

{

GetValue("Information", "Name", out outString);

textBox1.Text = outString;

GetValue("Information", "Gender", out outString);

comboBox1.Text = outString;

GetValue("Information", "Age", out outString);

comboBox2.Text = outString;

GetValue("Information", "Region", out outString);

textBox2.Text = outString;

}

catch (Exception ee)

{

MessageBox.Show(ee.Message);

}

}

private void GetValue(string section,string key, out string value)

{

StringBuilder stringBuilder = new StringBuilder();

GetPrivateProfileString(section, key, "", stringBuilder, 1024, IniFilePath);

value = stringBuilder.ToString();

}

private void button3_Click(object sender, EventArgs e)

{

textBox1.Text = "";

comboBox1.Text = "男";

comboBox2.Text = "18";

textBox2.Text = "";

}

}

}

 运行结果:

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员的SOD蜜

使用“消息服务框架”(MSF)实现分布式事务的三阶段提交协议(电商创建订单的示例)

1,示例解决方案介绍 在上一篇 《消息服务框架(MSF)应用实例之分布式事务三阶段提交协议的实现》中,我们分析了分布式事务的三阶段提交协议的原理,现在我们来看看...

2749
来自专栏二进制文集

Java 生产者消费者实现 —— BlockingQueue

对着《Java 编程思想》,通过wait - notifyAll实现了生产者消费者模式。今天用BlockingQueue实现一下。

1104
来自专栏用户2442861的专栏

Tomcat源码 Connector(2)

 Connector是Tomcat最核心的组件之一,负责处理一个WebServer最核心的连接管理、Net IO、线程(可选)、协议解析和处理的工作。 一、...

401
来自专栏coding

swoole创建tcp服务器tcp server使用telnet连接自定义 tcp client

1592
来自专栏后端之路

两级缓存框架J2Cache的使用

说起cache总是想要唠两句buffer,至于cache和buffer的区别在此Cache 和 Buffer 都是缓存,主要区别是什么? 缓存在整个计算机生活中...

25310
来自专栏阿杜的世界

RocketMQ学习-Broker-1

前面学习了name server的主要代码,这篇文章开始学习broker的源码。broker是RocketMQ的核心模块,这篇文章我们先从整体看下代码结构、Ro...

612
来自专栏Java编程技术

高性能网络通信框架Netty-基础概念篇

Netty是一种可以轻松快速的开发协议服务器和客户端网络应用程序的NIO框架,它大大简化了TCP或者UDP服务器的网络编程,但是你仍然可以访问和使用底层的API...

802
来自专栏后端之路

两级缓存实现分析之缓存设置

上篇描述了缓存过期的代码两级缓存实现分析之缓存过期 本次讨论一下两级缓存如何获取缓存设置,移除,获取 正如文章描述缓存读取顺序 读取顺序 -> L1 -> L...

19910
来自专栏后端之路

基于j2cache实现的redis分布式锁

系统现状: 由于系统目前提醒是在公共模块,对于提醒的数目实时计算。对于db的压力较大。因此采用J2cache的两级缓存。关于两级缓存的说明 但是当部分业务更新...

2888
来自专栏码匠的流水账

JCTools简介

JCTools是一款对jdk并发数据结构进行增强的并发工具,主要提供了map以及queue的增强数据结构。原来netty还是自己写的MpscLinkedQueu...

341

扫码关注云+社区