واضح آرشیو وب فارسی:سایت ریسک: View Full Version : مقاله : استفاده از فايلهاي Ini در دلفي ... Mahmood_N30-10-2007, 03:56 AMبه نام خدا ... قصد داریم در طی یک مقاله روش استفاده از فایلهای 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 این مقاله رو می تونید از اینجا (http://nabegheh.parsaspace.com/DelphiTutrials/INI%20Files.pdf) دریافت کنید ... موفق باشید ... sp100030-10-2007, 05:36 AMخیلی عالی بود دست درد نکنه Mahmood_N جان as1385136530-10-2007, 08:25 AMخیلی خوب بود باید وقت بزارم و تک تک این دستوراتی را که شما توضیح دادید اجرا کنم خیلی ممنون romixery30-10-2007, 10:05 AMعاليه. فايلهاي Ini يكي از اجزاي مهم برنامه نويسي هستن. چه خوبه كه دارين ياد ميدين. چه كارايي كه با اين فايلها نمي شه كرد. موفق باشين باي سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 614]