Select Page

Setiap program biasanya memiliki bagian yang dapat di setting atau di konfigurasi sesuai kebutuhan pengguna atau kebutuhan program itu sendiri. Setiap (perubahan ) setting selalu disimpan dalam sebuah file atau databse yang nantinya setting tersebut digunakan ketika program dijalankan kembali. Sehingga pengguna tidak perlu lagi melakukan konfigurasi ulang.

Artikel ini membahas cara menyimpan setting program di sebuah file khusus yang bernama inifile. Inifile adalah file dengan ekstensi .INI milik MS-DOS namun tertap bertahan digunakan di OS Windows. Walaupun inifile sudah ditinggalkan karena Windows sudah menggunakan registry seperti database yang menyimpan semua setting maupun konfigurasi untuk (semua) software sehingga semua setting berada dibawah naungan managemen Windows. Keuntungan menyimpan setting di registry adalah dapat terintegrasi dengan OS Windows. Namun sesuai judulnya Simpan Setting Program di file Inifile, kita akan membahas file Inifile. Inifile adalah file setting maupun konfirugasi yang hanya digunakan program itu sendiri dan biasanya diletakkan dalam satu folder dengan program tersebut.

Lazarus Free Pascal mendukung Inifile dengan menambahkan unit Inifiles dan object adalah Tinifile. Struktur file Inifile adalah sebagai berikut:

; digunakan untuk komentar – tidak diproses

[SECTION]

Key1 = Value

Key2 = Value

Value yang dapat disimpan adalah string, integer dan boolean. Variabel tersebut sudah cukup untuk nilai setting program. Cara menuliskan setting kedalam inifile adalah sebagai berikut

Ini.writestring(‘SECTION-1’, ‘KEY-1’, ‘values-string’); // key dengan nilai string

Ini.Writeinteger (‘SECTION-1’,’KEY-2’, [value-integer]); // key dengan nilai bilangan

Ini.Writebool(‘SECTION-1’,’KEY-3’, [true atau false]); // key dengan nilai boolean

Sedangkan untuk mendapatkan nilai dari suatu key adalah sebagai berikut:

Uses Inifiles;

Var
  S: string;
  I: integer;
  B: boolean;
  ini: TInifile;
Begin
  ...
  S:= ini.readstring(‘SECTION-1’, ‘KEY-1’, ‘abc’); // jika nilai tidak tersedia, maka diberikan abc
  I:= inireadinteger(‘SECTION-1’, ‘KEY-2’, 0); // jika nilai tidak tersedia, maka diberikan nilai 0
  B:= ini.readboolean(‘SECTION-1’, ‘KEY-3’, false); // jika nilai tidak tersedia, maka diberikan nilal false
  ....
end;

Contoh Cara Menggunakan Inifile

Berikut ditampilkan contoh program untuk menuliskan nilai setting ke inifile dan juga membacanya.

uses Iniffiles;
procedure TForm1.Button1Click(Sender: TObject);
var
  Ini : TInifile;
begin
  Ini:= TInifile.Create(Inifile);
  try
    //Write form position to ini file
    Ini.WriteInteger('POSITION', 'top', Form1.Top);
    Ini.WriteInteger('POSITION','left', Form1.Left)
  finally
    Ini.Free;
  end;
end;

procedure TForm1.Button2Click(Sender: TObject);
var
  Ini : TInifile;
begin
  Ini:= TInifile.Create(Inifile);
  try
    //Read form position form ini file
    Form1.Top := Ini.ReadInteger('POSITION','top',0);
    Form1.Left:= Ini.ReadInteger('POSITION', 'left', 0);
  finally
    Ini.Free;
  end;
end;

Untuk detail, kamu bisa unduh source code contoh program menulis/membaca infile disini.