现在的位置: 首页 > 综合 > 正文

c#读写ini文件

2013年09月12日 ⁄ 综合 ⁄ 共 4494字 ⁄ 字号 评论关闭
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 );
  }


  
Windows 窗体设计器生成的代码

  
/// <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"

抱歉!评论已关闭.