PDA

View Full Version : مقاله : کاربرد inifiles در دلفی



aserfg
دوشنبه 06 اسفند 1386, 16:50 عصر
TINIFile And You - Using INI Files in Delphi

این فایلها چیزی بیشتر از یک فایل متنی هستندکه برای ذخیره سازی برنامه های مختلف و مقادیر سیستم عامل استفاده می شونداز قبیل موقعیت پنجره رنگها و یا خیلی تنظیمات دیگرفایلهای اینی در ویندوز 3.1 نسبتا بیشتر بودندو برای کم کردن رشد آنها مایکروسافت تصمیم به درست کردن یک بانک اطلاعاتی گرفت که تنظیمات در آن ذخیره شوند که امروزه ما میدانیم این همان رجیستری است.فایلهای اینی هنوز هم کاریرد زیادی در سیستم عامل دارند برای فهم بیشتر فایل c:\win\win.ini را به وسیله نوت پد باز کنید . بهتر است یک نسخه از فایل را درمکان دیگر کپی وسپس به بررسی آن بپردازیدتا در صورت ایجاد تغییرات مرا مقصر ندانید.هر فایل اینی از سه قسمت اصلی تشکیل می شوداگه شما فایل رو مورد بررسی قرار بدین می بینین که اون به بخشهایی تقسیم شده که هر بخش با یک براکت معرفی می شه در زیر هر بخش لیستی از المانها و مقادیر مربوطه رو مشاهده می کنین اینجا مثالی از المانها و مقادیر بخش تنظیمات دسکتاپ فایل اینی مذکور را بررسی می کنیم .


[Desktop]
Wallpaper=(None)
TileWallpaper=0
WallpaperStyle=2
Pattern=(None)

aserfg
دوشنبه 06 اسفند 1386, 16:53 عصر
در این مثال ؛ بخش مورد نظر دسکتاپ نامیده شده و در زیر اون المانها رو داریم که مقدار دهی شده اندمقادیر شما ممکن است مانند اینها نباشنداما المانها یکسانندهر زمان که ویندوز بالا می آید سیستم عامل این مقادیر رو چک می کنه ودسکتاپ رو براساس مقادیر این المانها خواهد ساخت من واقعا نمی تونم فایل اینی رو بهتر از این توضیح بدم و قصد من کاربرد فایلهای اینی در دلفیه.


اولین کاری که باید انجام بدیماینه که قادر به خواندن و نوشتن از فایلهای اینی باشیم کلمه inifiles رو به یوزز اضافه کنیم (در یونینت اصلی برنامه)




uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, INIFiles;
بیایید دو باتن رو روی فرم بزارین نام باتنها رو (btnread)و(btnwrite) بزارین و کپشن اونا رو به (Read INI)و(Write INI) ست کنید کد زیر رو در رویداد ان کلیک btnwriteبنویسید:


TForm1.btnWriteClick(Sender: TObject);
var
myINI : TINIFile;
begin
myINI := TINIFile.Create(ExtractFilePath(Application.EXENam e) + 'myinifile.ini');
myINI.WriteString('Settings', formcolor', red');
myINI.Free;
end; اولین کاری که این کد انجام می ده تعریف myiniبه عنوان یک شیء از نوء tinifileاست ..creat() در واقع مسیر فایل اینی رو مشخص می کنه کد بالا معین می کنه مسیر فایل در همان پوشه برنامه ماست.شما می تونین مسیر دیگه ای رو وارد کنید اگه فایل موجود نباشه نگران نباشین دلفی اتوماتیک اونو ایجاد خواهد کرد خط بعدی یک المان معین رو در یک بخشی به نام settingدرج خواهد کرد.
پارامتر دوم برای دلفی مشخص می کنه که المانی به نام formcolorرو در بخش settingو به مقدار red ست کنه.حال بیایید مقادیر را از فایل اینی بخوانیم.


TForm1.btnReadClick(Sender: TObject);
var
myINI : TINIFile;

st:string;
begin
myINI := TINIFile.Create(ExtractFilePath(Application.EXENam e) + 'myinifile.ini');
st := myINI.ReadString('Settings', formcolor', 'Default');
myINI.Free;
end;

aserfg
دوشنبه 06 اسفند 1386, 16:57 عصر
بطور اساسی در خط اول کد همانند کدقبلی می باشد.خط بعدی کمی با رویه writestring فرق داره بهر حال باز هم شبیه به همون رویه ابتدا دنبال بخش setting گشته و سپس پارامتر پارامتر سومی اگه از قبل موجود باشه مقدار مورد نظر رو در st قرار می ده اگه مقادیر از قبل موجود نباشن مقدار default رو بر می گردونه.

بخش سوم:انواع دیگر رویه ها و توابع
در مجموع ما می تونیم مقادیر صحیح رو نیز با استفاده از readinteger(),writeinteger به ترتیب از فایل ini بخوانیم و بنویسیم.همچنین شما می تونین از توابع و رویه های زیر استفاده کنین.




DeleteKey
EraseSection
ReadBinaryStream
ReadBool
ReadDate
ReadDateTime
ReadFloat
ReadSection
ReadSections
ReadBinaryStream
ReadSectionValues
ReadTime
SectionExists
WriteBinaryStream
WriteBool
WriteDate
WriteDateTime
WriteFloat
WriteTime
UpdateFile
ValueExists


امیدوارم این مقاله شما رو در مسیر استفاده از فایلهای ini کمک کنه .