sds1920
پنج شنبه 16 مرداد 1393, 19:42 عصر
سلام به همه دوستان.
مدت های بود دنبال کلاسی می گشتم که بتونم برخی تنظیمات ساده و مورد نیاز کاربر را مدیریت کنم.ولی از اونجا که کار کردن با فایل ها مشکل سازه و از طرفی برای دخیره تنظیمات نیازی به دردسرها دیتابیس نیست پس تصمیم گرفتم خودم کلاسی بنویسم که هم از ساختار xml برای ذخیره تنظیمات استفاده کنه و هم برنامه نویس رو از دردسر کار کردن با فایل ها راحت کنه.برای همین شروع کردم و نتیجه نسبتا خوبی به دست اومد که حیفم اومد با بقیه به اشتراک نذارم.من dll کلاس رو به همراه فایل xml توضیحات اون قرار میدم و در زیر به نحوه استفاده از اون می پردازم.
ساختار ذخیره سازی اطلاعات در فایل به صورت زیر می باشد:
<?xml version="1.0" encoding="utf-8"?>
<SettingsCollection>
<setting name="****">
<attr name="..." type="...">value</attr>
</setting>
<setting name="****">
<attr name="..." type="...">value</attr>
<attr name="..." type="...">value</attr>
</setting>
<setting name="****">
<attr name="..." type="...">value</attr>
<attr name="..." type="...">value</attr>
<attr name="..." type="...">value</attr>
<attr name="..." type="...">value</attr>
<attr name="..." type="...">value</attr>
</setting>
</SettingsCollection>
همانطور که در بالا مشاهده می کنید تمامی تنظیمات در ریشه <SettingsCollection> ذخیره می شود.این ریشه شامل مجموعه ای از نود های <Setting> است که هر Setting یک نام Unique و تعدادی خاصیت دارد که این خاصیت ها در ریشه های <attr> ذخیره می شود.از هر setting می توانید برای یکی از تنظیمات مورد نیاز خود استفاده کنی.برای مثال تنظیمات مربوط به پیام ها یا تنظیمات مربوط به مسیر فایل های مورد نیاز و یا تنظیمات مربوط به نمایش تصویر و یا... . در هر setting تعداد Attribute یا همان خاصیت ها نامحدود است و می تواند به هر تعدادی که نیاز هست وجود داشته باشد.تنها نکته مهم در قسمت setting ها منحصر به فرد بودن نام هر setting است در غیر این صورت با خطای زمان اجرا مواجه خواهید شد.نام setting ها حساس به بزرگ و کوچک بودن حروف نیست.
هر <attr> نشان دهنده یک صفت برای setting مشخص شده می باشد که شامل یک نام برای صفت، یک مقدار و نوع داده ای مقدار می باشد.همانند setting ها attr ها نیز دارای یک نام منحصر به فرد درون setting خود میباشند.برای مثال یک attr با نام aaa تنها یک بار می تواند در setting1 باشد ولی setting2 نیز می تواند خاصیتی با همین نام داشته باشد.
تقریبا تمام انواع داده ای پایه توسط این ساختار قابل ذخیره سازی می باشد.در لیست زیر اسامی تمامی 31 نوع داده آمده است:
1)bool
2)bool[]
3)byte
4)byte[]
5)sbyte
6)sbyte[]
7)double
8)double[]
9)float
10)float[]
11)Int16
12)Int16[]
13)Int32
14)Int32[]
15)Int64
16)Int64[]
17)UInt16
18)UInt16[]
19)UInt32
20)UInt32[]
21)UInt64
22)UInt64[]
23)char
24)string
25)string[]
26)DateTime
27)DateTime[]
28)Font
29)Font[]
30)Color
31)Color[]
البته در برنامه شما نیازی به تعیین نوع داده ندارید و این کار توسط کلاس ها انجام می پذیرد.تنها زمانی که نوع داده غیر از انواع داده ذکر شده باشد با خطای زمان اجرا مواجه خواهید شد.
توصیه می کنم که فایل ها را به صورت دستی ویرایش نکنید چون ممکن است با مشکل مواجه شوید.
تا اینجا به بررسی ساختار ذخیره سازی داده پرداختیم.در پست های بعدی نحوه استفاده از کلاس ها را بررسی خواهیم کرد.
در قسمت پایین dll و نمونه برنامه برای استفاده از dll قرار داده شده که می توانید استفاده کنید.
هر گونه استفاده شخصی از این dll رایگان و با ذکر منبع بلامانع می باشد.
مدت های بود دنبال کلاسی می گشتم که بتونم برخی تنظیمات ساده و مورد نیاز کاربر را مدیریت کنم.ولی از اونجا که کار کردن با فایل ها مشکل سازه و از طرفی برای دخیره تنظیمات نیازی به دردسرها دیتابیس نیست پس تصمیم گرفتم خودم کلاسی بنویسم که هم از ساختار xml برای ذخیره تنظیمات استفاده کنه و هم برنامه نویس رو از دردسر کار کردن با فایل ها راحت کنه.برای همین شروع کردم و نتیجه نسبتا خوبی به دست اومد که حیفم اومد با بقیه به اشتراک نذارم.من dll کلاس رو به همراه فایل xml توضیحات اون قرار میدم و در زیر به نحوه استفاده از اون می پردازم.
ساختار ذخیره سازی اطلاعات در فایل به صورت زیر می باشد:
<?xml version="1.0" encoding="utf-8"?>
<SettingsCollection>
<setting name="****">
<attr name="..." type="...">value</attr>
</setting>
<setting name="****">
<attr name="..." type="...">value</attr>
<attr name="..." type="...">value</attr>
</setting>
<setting name="****">
<attr name="..." type="...">value</attr>
<attr name="..." type="...">value</attr>
<attr name="..." type="...">value</attr>
<attr name="..." type="...">value</attr>
<attr name="..." type="...">value</attr>
</setting>
</SettingsCollection>
همانطور که در بالا مشاهده می کنید تمامی تنظیمات در ریشه <SettingsCollection> ذخیره می شود.این ریشه شامل مجموعه ای از نود های <Setting> است که هر Setting یک نام Unique و تعدادی خاصیت دارد که این خاصیت ها در ریشه های <attr> ذخیره می شود.از هر setting می توانید برای یکی از تنظیمات مورد نیاز خود استفاده کنی.برای مثال تنظیمات مربوط به پیام ها یا تنظیمات مربوط به مسیر فایل های مورد نیاز و یا تنظیمات مربوط به نمایش تصویر و یا... . در هر setting تعداد Attribute یا همان خاصیت ها نامحدود است و می تواند به هر تعدادی که نیاز هست وجود داشته باشد.تنها نکته مهم در قسمت setting ها منحصر به فرد بودن نام هر setting است در غیر این صورت با خطای زمان اجرا مواجه خواهید شد.نام setting ها حساس به بزرگ و کوچک بودن حروف نیست.
هر <attr> نشان دهنده یک صفت برای setting مشخص شده می باشد که شامل یک نام برای صفت، یک مقدار و نوع داده ای مقدار می باشد.همانند setting ها attr ها نیز دارای یک نام منحصر به فرد درون setting خود میباشند.برای مثال یک attr با نام aaa تنها یک بار می تواند در setting1 باشد ولی setting2 نیز می تواند خاصیتی با همین نام داشته باشد.
تقریبا تمام انواع داده ای پایه توسط این ساختار قابل ذخیره سازی می باشد.در لیست زیر اسامی تمامی 31 نوع داده آمده است:
1)bool
2)bool[]
3)byte
4)byte[]
5)sbyte
6)sbyte[]
7)double
8)double[]
9)float
10)float[]
11)Int16
12)Int16[]
13)Int32
14)Int32[]
15)Int64
16)Int64[]
17)UInt16
18)UInt16[]
19)UInt32
20)UInt32[]
21)UInt64
22)UInt64[]
23)char
24)string
25)string[]
26)DateTime
27)DateTime[]
28)Font
29)Font[]
30)Color
31)Color[]
البته در برنامه شما نیازی به تعیین نوع داده ندارید و این کار توسط کلاس ها انجام می پذیرد.تنها زمانی که نوع داده غیر از انواع داده ذکر شده باشد با خطای زمان اجرا مواجه خواهید شد.
توصیه می کنم که فایل ها را به صورت دستی ویرایش نکنید چون ممکن است با مشکل مواجه شوید.
تا اینجا به بررسی ساختار ذخیره سازی داده پرداختیم.در پست های بعدی نحوه استفاده از کلاس ها را بررسی خواهیم کرد.
در قسمت پایین dll و نمونه برنامه برای استفاده از dll قرار داده شده که می توانید استفاده کنید.
هر گونه استفاده شخصی از این dll رایگان و با ذکر منبع بلامانع می باشد.