فایلهای ini در سی شارپ
فایل های INI فایل های استاندارد متنی هستند که بسیاری از برنامه های حرفه ای ، بخشی از تنظیمات مانند لوکیشن واندازه فرم ، فونت یک لیبل ، رمز و ایمیل و …را در آنها ذخیره می کنند.
ساختار فایلهای INI به شکل زیر است:
کد:
[نام بخش یک]
نام کلید یک = مقدار یک
نام کلید دو = مقدار دو
[نام بخش دو]
نام کلید یک = مقدار یک
...........................................
برای دسترسی به فایلهای INI ابتدا میابیست کلاس INIAccess را به پروژه تان اضافه کنید.
کد:
using System;
using System.Collections.Generic;
using System.Text;
using System.Runtime.InteropServices;
class INIAccess
{
[DllImport("kernel32.dll")]
private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
[DllImport("kernel32.dll")]
private static extern int GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
public void INIWrite(string INIPath, string Section, string Key, string Value)
{
WritePrivateProfileString(Section, Key, Value, INIPath);
}
public string INIRead(string INIPath, string Section, string Key, string DefualtValue = "")
{
StringBuilder temp = new StringBuilder(255);
int i = GetPrivateProfileString(Section, Key, DefualtValue, temp, 255, INIPath);
return temp.ToString();
}
}
برای استفاده از کلاس فوق ، ابتدا باید یک نمونه جدید از این کلاس ایجاد کنید
همون طور که میبینید در این کلاس یک روال و یک تابع وجود دارد که بصورت عمومی تعریف شده اند و هنگام استفاده قابل دسترسی هستند
روال INIWrite به شما این امکان را میدهد کلیدی را در بخش معین ایجاد و یا مقدار دهی کنید
این روال چهار پارامتر را بعنوان ورودی میگیرد
پارامتر اول نام و مسیر فایل INI ، پارامتر دوم نام بخش ، پارامتر سوم نام کلید و پارامتر چهارم مقدار را که میخواهید به کلید اختصاص دهید
این روال در صورت نبود فایل ، انرا ایجاد میکند و درصورت نبود نام بخش و یا نام کلید آنهارا ایجاد میکند و غیر این صورت مقدار دهی میکند
کد:
private void Form1_Load(object sender, EventArgs e)
{
INIAccess ini = new INIAccess();
string inifile = Application.StartupPath + "\test.ini";
ini.INIWrite(inifile, "Setting", "name", "Form1");
}
تابع INIRead میتواند مقداری را از کلید و بخش مشخص بخواند و بعنوان رشته برگرداند
این تابع نیز چهار پارامتر دارد
پارامتر اول نام و مسیر فایل روی هارد ، پارامتر دوم نام بخش و پارامتر سوم نام کلید است پارامتر چهارم نیز اختیار ی است و در صورت نبودن فایل یا بخش یا کلید مورد نظر ، درصورت عدم مقدار دهی ، تهی برمیگرداند ودر صورت مقدار دهی آن مقدار را برمیگرداند
کد:
private void Form1_Load(object sender, EventArgs e)
{
INIAccess ini = new INIAccess() ;
string inifile = Application.StartupPath + "\test.ini";
this.Text = ini.INIRead (inifile,"Setting", "name","None");
}
کار با فایل های ذکر شده ساده هستن فقط در هنگام ساختن چنین فایل هایی باید به دقت تنظیمات رو انجام بدین که پس از اعمال تنطیمات مشکلی بوجود نیاد