[C#]ini讀寫教學
為什麼要用ini(initialization)?
可以方便的作讀寫的動作,比單純存在程式內更有效率,因為假若存在程式裡,程式移動位置時內部資料就會跑掉。此外,當然也可以選用.txt、.conf、.cfg作為存檔方式。
接下來先來介紹
private static extern long WritePrivateProfileString(string section,
string key, string val, string filePath);
string section INI文件中的一個字段名
string key下的一個鍵名,也就是一個變數
string val 寫入的字串
string filePath 路徑名稱
private static extern int GetPrivateProfileString(string section,
string key, string def, StringBuilder retVal,
int size, string filePath);
string section INI文件中的一個字段名
string key下的一個鍵名,也就是一個變數
string val 寫入的字串
string def 如果沒有其前兩個參數值,則將此值賦給變量
StringBuilder retVal接收INI文件中的值的String對象,即接收緩衝區
int size 大小
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.Runtime.InteropServices;
using System.IO;
namespace ini讀寫
{
public partial class Form1 : Form
{
[DllImport("kernel32", CharSet = CharSet.Unicode)]
private static extern long WritePrivateProfileString(string section,
string key, string val, string filePath);
[DllImport("kernel32", CharSet = CharSet.Unicode)]
private static extern int GetPrivateProfileString(string section,
string key, string def, StringBuilder retVal,
int size, string filePath);
public string filename = "ini_Hello.ini"; //your file name
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
WritePrivateProfileString("section1", "var1", textBox1.Text, ".\\" + filename);
WritePrivateProfileString("section2", "var1", textBox2.Text, ".\\" + filename);
WritePrivateProfileString("section1", "var2", textBox3.Text, ".\\" + filename);
}
private void button2_Click_1(object sender, EventArgs e)
{
int size = 3000;//temp file source size
StringBuilder temp = new StringBuilder(size); //temp file source
try
{
GetPrivateProfileString("section1", "var1", "", temp, size, ".\\" + filename);
textBox1.Text = Convert.ToString(temp);
GetPrivateProfileString("section2", "var1", "", temp, size, ".\\" + filename);
textBox2.Text = Convert.ToString(temp);
GetPrivateProfileString("section1", "var2", "", temp, size, ".\\" + filename);
textBox3.Text = Convert.ToString(temp);
}
catch
{
}
}
}
}
範例下載(解壓縮密碼:um):
文章標籤
全站熱搜
