C# 读写ini

C#读写Ini文件类 using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Collections.Specialized;using System.IO;using System.Runtime.InteropServices;using System.Windows.Forms;namespace Comm{    ///     /// IniFiles的类    ///     publ 阅读详情
 

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Runtime.InteropServices;
using System.IO;
using System.Text;


namespace ex84_readWriteIni
{
 /// <summary>
 /// Form1 的摘要说明。
 /// 

 /// zhanghua 2005-7-28
 ///
 /// </summary>
 ///
 public class Form1 : System.Windows.Forms.Form
 {
  /// <summary>
  /// 必需的设计器变量。
  /// </summary>
  private System.ComponentModel.Container components = null;

  public Form1()
  {
   //
   // Windows 窗体设计器支持所必需的
   //
   InitializeComponent();

   //
   // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
   //
  }

  /// <summary>
  /// 清理所有正在使用的资源。
  /// </summary>
  protected override void Dispose( bool disposing )
  {
   if( disposing )
   {
    if (components != null)
    {
     components.Dispose();
    }
   }
   base.Dispose( disposing );
  }

  #region Windows 窗体设计器生成的代码
  /// <summary>
  /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  /// 此方法的内容。
  /// </summary>
  private void InitializeComponent()
  {
   this.button1 = new System.Windows.Forms.Button();
   this.SuspendLayout();
   //
   // button1
   //
   this.button1.Location = new System.Drawing.Point(192, 112);
   this.button1.Name = "button1";
   this.button1.TabIndex = 0;
   this.button1.Text = "button1";
   this.button1.Click += new System.EventHandler(this.button1_Click);
   //
   // Form1
   //
   this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
   this.ClientSize = new System.Drawing.Size(292, 273);
   this.Controls.Add(this.button1);
   this.Name = "Form1";
   this.Text = "Form1";
   this.Load += new System.EventHandler(this.Form1_Load);
   this.ResumeLayout(false);

  }
  #endregion

  /// <summary>
  /// 应用程序的主入口点。
  /// </summary>
  [STAThread]
  static void Main()
  {
   Application.Run(new Form1());
  }

  /// <summary>
  /// 添加GetPrivateProfileInt等6个API函数的声明和FILE_NAME常量的声明
  /// </summary>
  //declare begin  by zhanghua
  [DllImport("kernel32")]
   private static extern int GetPrivateProfileInt(
      string  lpApplicationName,
      string lpKeyName, 
      int   nDefault,
      string  lpFileName);
  [DllImport("kernel32")]
   private static extern bool GetPrivateProfileString(
     string  lpApplicationName,
     string  lpKeyName,
     string  lpDefault,
     StringBuilder   lpReturnedString ,
     int     nSize,
     string lpFileName);
  [DllImport("kernel32")]
   private static extern bool WritePrivateProfileString(
     string  lpApplicationName,
     string  lpKeyName,
     string  lpString,
     string  lpFileName);

  [DllImport("kernel32")]
   private static  extern bool GetPrivateProfileSection(
     string   lpAppName,
     StringBuilder lpReturnedString,
     int    nSize,
     string   lpFileName );
  [DllImport("kernel32")]
   private static extern bool  WritePrivateProfileSection(
     string  lpAppName,
     string      lpString,
     string  lpFileName);

  private System.Windows.Forms.Button button1;

  public const string FILE_NAME ="C://Visual Studio Projects//ex84_readWriteIni//test.ini";
  // declare end
       
  private void Form1_Load(object sender, System.EventArgs e)
  {
   if (File.Exists(FILE_NAME))
   {
    StringBuilder strCaption = new StringBuilder(256);
    GetPrivateProfileString("Form", "Caption","Default Caption",
     strCaption,
     strCaption.Capacity,
     FILE_NAME);
    this.Text= strCaption.ToString();
    
    int myWidth= GetPrivateProfileInt("Form", "Width", this.Width,FILE_NAME);
    this.Width=myWidth;

    int myHeight= GetPrivateProfileInt("Form","Height", this.Height,FILE_NAME);
    this.Height= myHeight;

    int  myLeft= GetPrivateProfileInt("Form","Left", this.Left,FILE_NAME);
    this.Left=myLeft;

    int myTop = GetPrivateProfileInt("Form","Top", this.Top, FILE_NAME);

    this.Top=myTop;
   }
  }

  //当按钮被点击, 保存窗体的位置和大小信息到test.ini 文件中,响应代码如下:

  private void button1_Click(object sender, System.EventArgs e)
  {
   string  strCaption = this.Text;
   WritePrivateProfileString("Form", "Caption", strCaption, FILE_NAME);
   WritePrivateProfileString("Form",  "Width", this.Width.ToString(), FILE_NAME);
   WritePrivateProfileString("Form",  "Hight", this.Height.ToString(), FILE_NAME);
   WritePrivateProfileString("Form",  "Left", this.Left.ToString(), FILE_NAME);
   WritePrivateProfileString("Form",  "Top", this.Top.ToString(), FILE_NAME);
  }

  //当程序结束时,保存窗体的位置和大小信息到test.ini 文件中,响应代码如下:
  private void Form1_Closing( object sender, System.ComponentModel.CancelEventArgs e)
  {
   string  strCaption = this.Text;
   WritePrivateProfileString("Form", "Caption", strCaption, FILE_NAME);
   WritePrivateProfileString("Form",  "Width", this.Width.ToString(), FILE_NAME);
   WritePrivateProfileString("Form",  "Hight", this.Height.ToString(), FILE_NAME);
   WritePrivateProfileString("Form",  "Left", this.Left.ToString(), FILE_NAME);
   WritePrivateProfileString("Form",  "Top", this.Top.ToString(), FILE_NAME);

  }
    
  
 }
}

 
C#关于读写INI文件 C#关于读写INI文件 什么是ini文件就是一个配置文件,一般把数据库等配置信息放进去,然而,改变数据库的密码,数据库名称,ip等,不要改源码重新编译,只需要用记事本打开set.ini 文件,修改保存即可,不需要修改exe文件,你也修改不了, 跟java的数据库配置信息的properties文件类似或者springboot的yaml文件类似,软编码的抽取,我的数据库配置随时可能动,war包jar包不要动,的好处。 格式是 [Section] 段落 key(键)=value(值) 跟java的HashMap类 阅读详情

相关推荐

C#中ini文件的读写操作详解

ini文件,全称为Initialization File,是一种简单的配置文件格式,广泛应用于软件设置和配置信息的存储。它通常由简单的文本组成,分为节(Sections)和键值对(Key-Value Pairs),便于人类阅读和编辑。由于其结构简单、容易解析,ini文件成为了应用程序配置管理的首选。自定义配置节允许开发者为应用程序扩展配置文件的功能,通过创建自己的配置节处理器来解析和管理这些自定义节。这一过程涉及定义配置节的schema以及编写代码以处理这些配置项。

weixin_35752233的博客 1592

如何在C#中读写INI文件

但自从Windows 95的退出,在Windows系统中引入了注册表的概念,INI文件在Windows系统的地位就开始不断下滑,这是因为注册表的独特优点,使应用程序和系统都把许多参数和初始化信息放进了注册表中。这里有一点应该注意,当在调用WritePrivateProfileString()对INI文件进行写操作的时候,如果此时在INI文件中存在和要写入的信息相同的段落名称和关键字,则将覆盖此INI信息。通过上面的这些介绍,可以看成C#操作INI文件的过程,其实就是C#调用Win32的API函数的过程。

biyusr的专栏 1746

避坑指南:sherpa-onnx中文语音识别模型实测对比(2024最新版)

本文实测对比了sherpa-onnx框架下Paraformer、Zipformer、SenseVoice等主流中文语音识别模型。针对不同应用场景,从准确率、延迟、资源占用等维度提供选型建议,并分享部署避坑指南与最佳实践,帮助开发者高效选择本地语音转文字方案。

xray4的博客 2291

C#读写ini文件详解

C#读写ini文件是如何进行的呢?C#读写ini文件需要的方法有哪些呢?本文就向你一一介绍。 C#读写ini文件之前要了解的概念:INI就是扩展名为"INI"的文件,其实他本身是个文本文件,可以用记事本打开,主要存放的是用户所做的选择或系统的各种参数. C#读写ini文件其实并不是普通的文本文件.它有自己的结构.由若干段落(SECTION)组成,在每个带括号的标题下面,...

weixin_30328063的博客 1824

CTFHUB------XSS反射型(WP)

文章目录前言XSS测试平台 前言 一开始我直接在上面写js脚本发现出错,最后发现只能通过下面的输入框来执行XSS测试,于是我们只能用XSS测试平台解决问题 XSS测试平台 注册一个XSS测试平台 这里随便填写 勾选默认模块就够了,点击下一步 这时会出现一个找个将代码复制 拼接到网站后缀name后面,点击send 这时平台会收到一个记录点开即可 得到flag ...

Y4tacker的博客 1万+

NVIDIA NCCL 安装和测试实战教程

ibrary)是用于深度学习应用的高性能通信库,可加速多GPU通信和同步。它能够在多个GPU之间进行高效的数据传输和集体操作,显著提高了分布式GPU系统上深度学习训练和推理的性能。NVIDIA NCCL是加速多GPU系统上深度学习应用的必不可少的工具。其高效的通信原语和集体操作显著提高了分布式训练和推理的性能,使其成为现代深度学习基础架构的关键组成部分。

weixin_39818775的博客 4431

C#中处理读写Ini文件

1、C#读写ini文件其实并不是普通的文本文件,有自己的结构。由若干段落(SECTION)组成,在每个带括号的标题下面,是若干个以单个单词开头的关键字(KEYWORD)和一个等号,等号右边就是关键字的值(VALUE).例如: [Section1]      KeyWord1 = Value1      KeyWord2 = Value2      ...  [Section2]      Key

Mihoke的博客 3839

Xiaojie雷达之路---毫米波雷达基础知识---中频信号的相位

本篇文章主要介绍毫米波雷达的基础知识中的中频信号的相位 文章目录傅里叶变换的快速回顾中频信号的相位中频信号对物体微小位移的灵敏度如何2个chirps来对一个物体的速度进行测量测量一个振动的物体 傅里叶变换的快速回顾 傅里叶变换是将一个信号从时域中转换到频域中,在时域中的一个正弦信号将在频域中产生一个峰值,在大多数情况下,在频域中的一个信号是一个复数(每个值是一个振幅和相位的向量),表示为AejθAe^{j\theta}Aejθ 在频域中峰值的相位等于正弦函数的初始相位 中频信号的相位 上一篇文章中提到,

XiaoJie的博客 1万+

C#读写INI文件

作者: 盛放    http://oraasp.vicp.net/article/article.aspx?ID=26   虽然微软早已经建议在WINDOWS中用注册表代替INI文件,但是在实际应用中,INI文件仍然有用武之地,尤其现在绿色软件的流行,越来越多的程序将自己的一些配置信息保存到了INI文件中。   INI文件是文本文件,由若干节(section)组成,在每个带括号的标题下面,是若干个

ldw701的专栏 750

语音识别(ASR)-- Kaldi 学习笔记

语音识别(ASR)-- Kaldi学习笔记语音识别简介GMM-HMM基本原理DNN-HMM(基于神经网络)KaldiKaldi架构简介Kaldi在Windows下的安装工具准备编译OpenFST配置PortAudio配置KaldiKaldi目录说明 语音识别简介 语音识别(Speech Recognition)技术,也被称为自动语音识别(Automatic Speech Recognition, ASR)、计算机语音识别(Computer Speech Recognition)或是语音转文本识别(Spee

qq_43318971的博客 4849

Arduino智能小灯DIY:人体感应+光线感应+蓝牙控制全攻略(附完整代码)

本文提供了一份完整的Arduino智能小灯DIY制作指南。项目融合了人体感应、光线感应与蓝牙控制三大功能,通过详细的硬件清单、电路连接图、核心逻辑讲解及附带的完整代码,手把手教你打造一个能自动感知环境与人、并支持手机远程控制的智能照明装置,是入门智能家居和物联网开发的绝佳实践。

java5的博客 1094

c#读写ini文件

<br />INI文件就是扩展名为"ini"的文件。<br />  其一般形式如下:<br />  [section1] // 配置节<br />  //键名 //键值<br />  keyword1 = valuel<br />  keyword2 = value2<br />  ……<br />  [section2]<br />  keyword3 = value3<br />  keyword4 = value4<br />  在Windows系统中,INI文件是很多,最重要的就是"System.i

烟逝爱情的专栏 867

基于Simulink实现电动汽车电机驱动系统的建模与仿真

通过上述步骤,我们成功实现了基于Simulink的电动汽车电机驱动系统的建模与仿真。该系统能够全面评估电机驱动系统的性能,验证控制策略的有效性,并通过优化设计提高车辆的动力性和效率。引入智能预测:结合人工智能技术,实现更智能的控制策略。扩展功能:增加对多种电机类型的支持,提升系统通用性。实验验证:将仿真模型应用于实际硬件,进行实验验证,评估其在实际工况下的表现。

xiaoheshang_123的博客 318

C#中读写INI文件总结

此为公司一前辈总结的,在此感谢,就不说名儿了。一、        C#中读写INI文件方法总结:INI文件是文本文件,由若干节(section)组成,在每个带括号的标题下面,是若干个关键词(key)及其对应的值(Value)  [Section]  Key=Value因为c#自己没有定义相应的方法, VC定义了API函数来读写INI文件,所以我们可以通过定义API 函数来实现读

Sugar_Tiger[糖伯虎]的专栏 2028

Python控制TEMI1000/TEMI1500测试温箱

该温箱是我司从昆山振弘检测设备有限公司采购的TEMI 1000,但是控制器用的是韩国的,关于控温箱这个项目,可参考的资料仅有一份官方的manual,里面包含一些命令格式。只要你有温箱,就应该可以向厂家索取该文档。该温箱的通讯接口只有一个RS232接口,要想实现远程控制,需要有串口转USB的线;类似于下图所以,想依靠python来与之进行通信,还是要通过python 的pyserial库,关于怎么安装pyserial,过于简单,这里不做赘述,可自行百度。

xgh1951的博客 1万+

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

C# 读写ini配置文件

C# 读写ini配置文件 一、简述 记--c#通过调用系统api接口进行简单读写ini配置文件。 例子打包:外链:https://wwa.lanzoui.com/b0c9nm3pa密码:8maq 二、效果 三、工程结构 四、源代码 Program.cs文件 using System; using System.IO; namespace Configure { ...

Genven_Liang的博客 5544

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

C# 读写ini文件

关于C# 如何读写ini 文件 什么是ini文件,ini文件的组成结构如下: 即由section(图中Gain Info)节点名称,KEY(图中G1 Gain)和Value(等号后的数值组成)。一般作为程序的配置文件。 C# 通过调用两个系统API函数就可以进行对ini文件的读写。 首先要引用using System.Runtime.InteropServices; [DllImport(“ker...

呢小白的博客 252

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

上一篇: java的各种排序方法..
下一篇: 子窗体中操作主窗体上的控件
eclipsesunjava
博客等级 码龄20年 12粉丝 22原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值