نمایش نتایج 1 تا 7 از 7

نام تاپیک: مقاله : استفاده از فایلهای INI

  1. #1

    مقاله : استفاده از فایلهای INI

    به نام خدا ...

    قصد داریم در طی یک مقاله روش استفاده از فایلهای INI را بررسی نماییم :

    استفاده از فایل INI برای ذخیره و بازیابی اطلاعات برنامه
    اغلب اوقات در برنامه های خود نیاز داریم تا اطلاعاتی در مورد برنامه را در جایی ذخیره و با شروع دوباره برنامه آنها را بازیابی نماییم ...
    دو راه رایج در این زمینه استفاده از Registry و فایلهای INI هستند ...
    ما در این مقاله به بررسی فایلهای INI و آموزش طریقه استفاده از آنها می پردازیم ...
    دلفی یونیتی به نام INIFiles در اختیار دارد که امکان استفاده از فایلهای INI را فراهم میکند ، در این یونیت کلاسی به نام TINIFiles وجود دارد که به وسیله آن می توانیم یک فایل INI ایجاد کرده و آن را ویرایش نماییم .
    قبل از شروع کد نویسی باید یونیت INIFiles را به قسمت Uses فرم اضافه نمایید ...

    ایجاد فایل INI :
    برای ایجاد یک فایل INI باید یک متغیر از این نوع ساخته و سپس با متد Create و دادن آدرس ، فایل مورد نظر را بسازیم :
    var
    MyIniFile : TINIFile;
    begin
    MyINIFile := TINIFile.Create("File Address");
    end;

    با اجرای کد بالا ، فایل INI مورد نظر درآدرس وارد شده در متد Create ساخته خواهد شد و میتوانیم آن را ویرایش نماییم ...

    نوشتن اطلاعات :
    برای نوشتن اطلاعات در فایل INI باید با توجه به نوع داده ( String‌ ، Integer ، Boolean یا ... ) متد مربوطه را فراخوانی کنیم ...
    نام متد مربوط به هر داده برابر است با واژه " Write " و نام نوع داده ...
    به عنوان مثال نوشتن یک مقدار String در فایل INI باید متد WriteString را فراخوانی نماییم
    این متد سه پارامتر دارد :
    1. Section : این قسمت مـربوط به دسته اطلاعات مـی باشد ، میتوانید برای چند داده مختلف که در فایل INI می نویسید ، یک دسته ( Section ) یکسان وارد نمایید تا در موقع خواندن بتوانید همه آنها را ( با متدی که در ادامه توضیح خواهیم داد ) یکجا بخوانید ...
    2. Ident : این پارامتر مربوط به نام مقدار داده می باشد ، هر داده باید دارای یک نام باشد تا موقع خواندن شناخته شود ...
    3. Value : این قسمت مربوط به مقدار داده است‌ ، یعنی همان چیزی که باید در فایل نوشته شود ...

    هر سه پارامتر بالا از نوع String هستند ...
    سایر متدهای Write ( برای انواع داده ای دیگر ) هم مانند متد بالا 3 پارامتر و به همان نامها دارند ، تنها فرقی که بین آنها نوع مقدار ورودی برای پارامتر Value است که با توجه به نوع داده ای که میخواهیم وارد نماییم ، متغیر است ، به عنوان مثال برای نوشتن یک داده از نوع Integer باید متد WriteInteger را با پارامترهای زیر وارد نماییم :
    MyIniFile.WriteInteger(Section : String;   Ident  : String;  Value : Integer); 

    در زیر متد Write برای سایر انواع داده ای دیگر آمده است :
    WriteBoolean( Section : String;  Ident : String;  Value : Boolean );
    WriteFloat( Section : String; Ident : String; Value : Double);
    WriteDate( Section : String; Ident : String; Value : TDateTime);
    WriteTime( Section : String; Ident : String; Value : TDateTime);
    WriteDateTime( Section : String; Ident : String; Value : TDateTime);
    WriteBinaryStream( Section : String; Ident : String; Value : TStream);


    خواندن اطلاعات :
    برای خواندن اطلاعات ، به جای واژه Write باید از Read استفاده نماییم ، متد ReadX ( X همان نوع داده ای است ) ساختاری مانند متد WriteX دارد ، با این تفاوت که به جای نوشتن اطلاعات ، اطلاعات را می خواند ...
    در متد ReadX به جای پارامتر Value پارامتر Default قرار دارد ،‌ شما در این پارامتر مقداری را وارد می نمایید تا اگر به هر دلیلی ، Section یا Ident ای که وارد کردید در فایل پیدا نشد و یا مقداری برای داده وجود نداشت ، مقدار برگشتی متد Read ، همان مقدار Default باشد ...
    به عنوان مثال فرض کنیم میخواهیم یک مقدار Integer را از فایل INI بخوانیم ، به کد زیر دقت نمایید :
    var
    N : Integer;
    begin
    N := MyIniFile.ReadInteger("MyNum", "MyNum", 3);
    end;

    بعد از اجرای کد بالا اگر در فایل INI مربوطه ، Section ای با نام MyNum یا Ident ای با نام MyNum وجود نداشته باشد ، مقدار متغیر N برابر با 3 خواهد بود در غیر این صورت مقدار N برابر خواهد بود با مقدار موجود در داده ای که Section و Ident آن MyNum باشد ...

    متد Read برای سایر داده ها به شرح زیر است :
    ReadString( Section : String;  Ident : String;  Default : String);
    ReadInteger( Section : String; Ident : String; Default : Integer);
    ReadBool( Section : String; Ident : String; Default : Boolean);
    ReadDate( Section : String; Ident : String; Default : TDateTime);
    ReadTime( Section : String; Ident : String; Default : TDateTime);
    ReadDateTime( Section : String; Ident : String; Default : TDateTime);
    ReadBinaryStream( Section : String; Ident : String; Default : TStream);


    خواندن گروهی اطلاعات :
    کلاس TINIFile دو متد به نامهای ReadSection و ReadSectionValues دارد که امکان خواندن گروهی از اطلاعات را می دهد ...
    منظور از گروه همان Section ای است که برای نوشتن اطلاعات وارد نموده اید ، به عنوان مثال اگر سه داده String در فایل نوشته باشید و نام Section هر سه آنها را " MySection " گذاشته باشید ، می توانید ، آن 3 مقدار را در یک TStrings ، قرار دهید ...
    ساختار این متدها به شرح زیر می باشد :
    ReadSection( Section : String;  Strings : TStrings );
    ReadSectionValues( Section : String; Strings : TStrings );

    خواندن لیست گروه ها ( Sections‌ ) :
    با استفاده از متد ReadSections میتوانید ، لیست تمام گروه های موجود در فایل INI را دریافت نمایید و در یک TStrings قرار دهید :
    ReadSections( Strings : TStrings );


    سایر متدها و توابع :

    متد EraseSection :
    با استفاده از این متد میتوانید یک Section خاص را از فایل حذف نمایید ( اطلاعات آن را پاک کنید ) :
    EraseSection( Section : String );


    متد DeleteKey ‌:
    به وسیله این متد می توانید یک مقدار را از فایل حذف نمایید ، این متد دو پارامتر برای نام Section و نام Ident دارد :
    DeleteKey( Section : String;   Ident : String );


    تابع SectionExists :
    با استفاده از این تابع میتوانید چک کنید که آیا یک Section خاص در فایل قرار دارد یا خیر ،‌مقدار برگشتی این تابع از نوه Boolean می باشد :
    SectionExists( Section : String ) : Boolean;


    تابع ValueExists :
    به وسیله این تابع میتوانید چک کنید که آیا یک مقدار در فایل وجود دارد یا خیر ، مقدار برگشتی این تابع از نوع Boolean می باشد :
    ValueExists( Section : String;  Ident : String );


    متد UpdateFile :
    این متد وظیفه بروز رسانی فایل INI و پاک کردن بافر استفاده شده فایل INI را دارد و بهتر است بعد از چندین عمل خواندن و نوشتن فراخوانی شود تا فایل INI برای کار مجدد آماده شود.

    خاصیت FileName :
    این خاصیت فقط خواندنی می باشد ( ReadOnly ) و به وسیله آن می توانید نام ( و آدرس ) فایل INI را نمایش دهید ...

    پایان ...

    امیدوارم مفید بودن باشه ...
    PDF این مقاله رو می تونید از اینجا دریافت کنید ...

    موفق باشید ...

  2. #2

    نقل قول: مقاله : استفاده از فایلهای INI

    سلام

    برنامه من علیرغم وجود کد
    MyINIFile := TINIFile.Create("File Address");
    Writeinteger( 'test','test1',200 );


    در همان متد گفته شده ، هیچ فایل INI ی نمی سازه

    میشه لطفا راهنمایی کنید

    ممنون

  3. #3

    نقل قول: مقاله : استفاده از فایلهای INI

    منم موفق نشدم.اگر ممکنه یک مثال کامل بذارید
    ممنون

  4. #4

    نقل قول: مقاله : استفاده از فایلهای INI

    نقل قول نوشته شده توسط delphi_programmer_2010 مشاهده تاپیک
    منم موفق نشدم.اگر ممکنه یک مثال کامل بذارید
    ممنون

    var
    MyFile: TIniFile;
    begin
    MyFile:= TIniFile.Create('D:\TestFile.ini');
    try
    MyFile.WriteString('TestSection', 'TestIdent', 'Sample Text');
    finally
    MyFile.Free;
    end;
    end;

  5. #5

    نقل قول: مقاله : استفاده از فایلهای INI

    مقاله خوبی بود....
    به نظر من اگه در رابطه با فایلهای XML هم مقاله ای نوشته بشه خیلی خوبه.

  6. #6
    کاربر دائمی آواتار عقاب سیاه
    تاریخ عضویت
    آذر 1387
    محل زندگی
    اصفهان
    پست
    457

    نقل قول: مقاله : استفاده از فایلهای INI

    PDF این مقاله رو می تونید از اینجا دریافت کنید ..
    لينك خراب است!!

  7. #7

    نقل قول: مقاله : استفاده از فایلهای INI

    لينك pdf خراب است

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •