به نام خدا ...
قصد داریم در طی یک مقاله روش استفاده از فایلهای INI را بررسی نماییم :
استفاده از فایل INI برای ذخیره و بازیابی اطلاعات برنامه
اغلب اوقات در برنامه های خود نیاز داریم تا اطلاعاتی در مورد برنامه را در جایی ذخیره و با شروع دوباره برنامه آنها را بازیابی نماییم ...
دو راه رایج در این زمینه استفاده از Registry و فایلهای INI هستند ...
ما در این مقاله به بررسی فایلهای INI و آموزش طریقه استفاده از آنها می پردازیم ...
دلفی یونیتی به نام INIFiles در اختیار دارد که امکان استفاده از فایلهای INI را فراهم میکند ، در این یونیت کلاسی به نام TINIFiles وجود دارد که به وسیله آن می توانیم یک فایل INI ایجاد کرده و آن را ویرایش نماییم .
قبل از شروع کد نویسی باید یونیت INIFiles را به قسمت Uses فرم اضافه نمایید ...
ایجاد فایل INI :
برای ایجاد یک فایل INI باید یک متغیر از این نوع ساخته و سپس با متد Create و دادن آدرس ، فایل مورد نظر را بسازیم :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
با اجرای کد بالا ، فایل INI مورد نظر درآدرس وارد شده در متد Create ساخته خواهد شد و میتوانیم آن را ویرایش نماییم ...
نوشتن اطلاعات :
برای نوشتن اطلاعات در فایل INI باید با توجه به نوع داده ( String ، Integer ، Boolean یا ... ) متد مربوطه را فراخوانی کنیم ...
نام متد مربوط به هر داده برابر است با واژه " Write " و نام نوع داده ...
به عنوان مثال نوشتن یک مقدار String در فایل INI باید متد WriteString را فراخوانی نماییم
این متد سه پارامتر دارد :
1. Section : این قسمت مـربوط به دسته اطلاعات مـی باشد ، میتوانید برای چند داده مختلف که در فایل INI می نویسید ، یک دسته ( Section ) یکسان وارد نمایید تا در موقع خواندن بتوانید همه آنها را ( با متدی که در ادامه توضیح خواهیم داد ) یکجا بخوانید ...
2. Ident : این پارامتر مربوط به نام مقدار داده می باشد ، هر داده باید دارای یک نام باشد تا موقع خواندن شناخته شود ...
3. Value : این قسمت مربوط به مقدار داده است ، یعنی همان چیزی که باید در فایل نوشته شود ...
هر سه پارامتر بالا از نوع String هستند ...
سایر متدهای Write ( برای انواع داده ای دیگر ) هم مانند متد بالا 3 پارامتر و به همان نامها دارند ، تنها فرقی که بین آنها نوع مقدار ورودی برای پارامتر Value است که با توجه به نوع داده ای که میخواهیم وارد نماییم ، متغیر است ، به عنوان مثال برای نوشتن یک داده از نوع Integer باید متد WriteInteger را با پارامترهای زیر وارد نماییم :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در زیر متد Write برای سایر انواع داده ای دیگر آمده است :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خواندن اطلاعات :
برای خواندن اطلاعات ، به جای واژه Write باید از Read استفاده نماییم ، متد ReadX ( X همان نوع داده ای است ) ساختاری مانند متد WriteX دارد ، با این تفاوت که به جای نوشتن اطلاعات ، اطلاعات را می خواند ...
در متد ReadX به جای پارامتر Value پارامتر Default قرار دارد ، شما در این پارامتر مقداری را وارد می نمایید تا اگر به هر دلیلی ، Section یا Ident ای که وارد کردید در فایل پیدا نشد و یا مقداری برای داده وجود نداشت ، مقدار برگشتی متد Read ، همان مقدار Default باشد ...
به عنوان مثال فرض کنیم میخواهیم یک مقدار Integer را از فایل INI بخوانیم ، به کد زیر دقت نمایید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
بعد از اجرای کد بالا اگر در فایل INI مربوطه ، Section ای با نام MyNum یا Ident ای با نام MyNum وجود نداشته باشد ، مقدار متغیر N برابر با 3 خواهد بود در غیر این صورت مقدار N برابر خواهد بود با مقدار موجود در داده ای که Section و Ident آن MyNum باشد ...
متد Read برای سایر داده ها به شرح زیر است :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خواندن گروهی اطلاعات :
کلاس TINIFile دو متد به نامهای ReadSection و ReadSectionValues دارد که امکان خواندن گروهی از اطلاعات را می دهد ...
منظور از گروه همان Section ای است که برای نوشتن اطلاعات وارد نموده اید ، به عنوان مثال اگر سه داده String در فایل نوشته باشید و نام Section هر سه آنها را " MySection " گذاشته باشید ، می توانید ، آن 3 مقدار را در یک TStrings ، قرار دهید ...
ساختار این متدها به شرح زیر می باشد :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
خواندن لیست گروه ها ( Sections ) :
با استفاده از متد ReadSections میتوانید ، لیست تمام گروه های موجود در فایل INI را دریافت نمایید و در یک TStrings قرار دهید :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سایر متدها و توابع :
متد EraseSection :
با استفاده از این متد میتوانید یک Section خاص را از فایل حذف نمایید ( اطلاعات آن را پاک کنید ) :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
متد DeleteKey :
به وسیله این متد می توانید یک مقدار را از فایل حذف نمایید ، این متد دو پارامتر برای نام Section و نام Ident دارد :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تابع SectionExists :
با استفاده از این تابع میتوانید چک کنید که آیا یک Section خاص در فایل قرار دارد یا خیر ،مقدار برگشتی این تابع از نوه Boolean می باشد :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
تابع ValueExists :
به وسیله این تابع میتوانید چک کنید که آیا یک مقدار در فایل وجود دارد یا خیر ، مقدار برگشتی این تابع از نوع Boolean می باشد :
کد:
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
متد UpdateFile :
این متد وظیفه بروز رسانی فایل INI و پاک کردن بافر استفاده شده فایل INI را دارد و بهتر است بعد از چندین عمل خواندن و نوشتن فراخوانی شود تا فایل INI برای کار مجدد آماده شود.
خاصیت FileName :
این خاصیت فقط خواندنی می باشد ( ReadOnly ) و به وسیله آن می توانید نام ( و آدرس ) فایل INI را نمایش دهید ...
پایان ...
امیدوارم مفید بوده باشه ...
PDF این مقاله رو می تونید از
[ برای مشاهده لینک ، با نام کاربری خود وارد شوید یا ثبت نام کنید ]
دریافت کنید ...
موفق باشید ...