Using INI Files/ar

From Lazarus wiki
Jump to navigationJump to search

العربية (ar) Deutsch (de) English (en) español (es) suomi (fi) français (fr) русский (ru) 中文(中国大陆)‎ (zh_CN)

ملفات اﻷعدادات INI

معلومات أساسية

تستخدم ملفات INI لحفظ إعدادات المستخدم اﻷساسية بسهولة , فعن طريق الوحدة INIfiles و الفئة TINIFile يمكنك بكل سهولة التعامل مع ملفات INI الموجودة مسبقا , تجد هذه الوحدة ضمن مكتبات FCL

ملفات INI

تستخدم ملفات INI الأقواس لتحديد اﻷقسام واللتي بدورها تحتوي علي مفاتيح و قيم .

يتم الفصل بين المفتاح والقيمة المقابلة له بعلامة التساوي (المفتاح=القيمة).

أسماء اﻷقسام تكتب بين قوسين مربعين ج[قسم].

التعليقات دائما مسموح بها ويسبق سطر التعليق بعلامة الفاصلة المنقوطة (;) ,وبماأن ملفات INI ليست قياسية بشكل كامل فأنه يمكن استخدام رموز التعليق اﻷخري كعلامة # .

حاليا يتم أستخدام ملفات INI أقل من أستخدام ملفات xml لتخزين السلاسل النصية , لأن ملفات INI لا تستطيع معالجة النصوص الكبيرة بشكل جيد.


مثال علي ملف INI :

; Comment. Beginning of INI file

; empty lines are ignored

; note that no section has been defined.
Compiler=Delphi
; Key: Compiler
; Value: Delphi

[General]
; This starts a General section
Compiler=FreePascal
; Key Compiler and value FreePascal

مثال قراءة ملف INI

التطبيق التالي يوضح كيفية قراءة ملف INI , عليك أولا إنشاء ملف INI واحفظه باسم "C:\DB.ini" . أنشئ فيه قسم باسم INIDB واضف إليه المفاتيح والقيم التالية :

[INIDB]
; Save as C:\DB.ini
Author=Adam
Pass=
DBFile=C:\Money.dat

واﻵن لننتقل إلي الكود ..

Program IniSample;

{$mode objfpc}{$H+}

Uses
  Classes,SysUtils,INIFiles;

Var
 INI:TINIFile;
 Author,Pass,DBFile:String;
 PassEnter:String;

begin
  // Create the object, specifying the place where it can find the ini file:
  INI := TINIFile.Create('C:\DB.ini');
  // Demonstrates reading strings from the INI file.
  // You can also read booleans etc.
  Author := INI.ReadString('INIDB','Author','');
  Pass := INI.ReadString('INIDB','Pass','');
  DBFile := INI.ReadString('INIDB','DBFile','');
  if Pass <> '' then
  begin
    Writeln('Password Required');
    Repeat
      Readln(PassEnter);
      if not (PassEnter = Pass) then Writeln('Wrong Password');
    until(PassEnter = Pass);
    Writeln('Correct Password');
  end;
  Writeln('Author : '+Author);
  Writeln('File : '+DBFile);
  Writeln('Password : '+Pass);
  Readln;
  // After we used ini file, we must call the Free method of object
  // ... although this really should be wrapped in a try..finally block
  // so that the object will be freed regardless of any errors above.
  Ini.Free; 
end.

أشياء لابد أن تعرفها

تحتوي الفئة TINIFile علي كثير من الخصائص واﻷجراءات والدوال اللتي يمكن استخدامها .

CaseSensitive - تتيح لك هذه الخاصية أن تجعل المفاتيح واﻷقسام حساسة لحالة اﻷحرف أم لا , افتراضيا غير حساسة لحالة اﻷحرف.


ReadString - تأخذ 3 مدخلات , اﻷول هو القسم اللذي يجب البحث فيه والثاني هو المفتاح اللذي سيتم البحث عنه والثالث هو قيمة افتراضية حال أن القسم و/أو المفتاح المطلوبين غير موجودين


WriteString - تأخذ 3 مدخلات أيضا , اﻷول هو القسم والثاني المفتاح والثالث هو القيمة المراد اسنادها لهذا المفتاح , لاحظ أنه إذا كان المفتاح والقسم موجودين من قبل فأنه سيتم كتابة القيمة الجديدة فوق القديمة .

ReadSections - تسمح لك بأخذ جميع اﻷقسام من ملف INI في صورة TString أو TStringList عن طريق المعامل As .

DeleteKey - تمكنك من حذف مفتاح موجود داخل أحد اﻷقسام .

EraseSection - تمكنك من حذف قسم كامل بكل محتوياته .


وغير ذلك يوجد الكثير من اﻷجراءات والدوال ولكن ماسبق يكفي لكي تبدأ .

المراجع

هنا: Free Pascal documentation on INI files


شاهد أيضا