Pada awal mengenal Delphi. Saya tidak terpikir untuk menggunakan file INI, yang biasanya dipakai Windows untuk menyimpan setting tertentu. Tetapi sekarang, saat pemrograman sudah sangat komplek, ditambah dengan harus menghadapi berbagai kemungkinan antara pengguna satu dan yang lainnya, maka mau tidak mau saya harus memberi kekhususan adalam pemakaian program saya. Dan file INI adalah salah satu pilihannya.
Anda dapat menggunakan file INI untuk berbagai macam keperluan, tergantung kreatifitas Anda. Bisa untuk menyimpan konfigurasi form, setting printer, pergantian bahasa software, panduan ringkas ataupun hanya sekedar database sementara.
Dibawah ini, saya akan memberikan contoh pemakaian file ini sebagai setting printer. Program semacam ini saya buat, karena saya mempunyai aplikasi yang mencetak data pada kertas tak standar. Dan dicetak pada sembarang printer dot matrik. Dengan demikian kemungkinan tidak cucok antara satu printer dengan printer pada pengguna lain dimungkinkan.
Oke, mari kita mulai saja. Pembahasannya saya bagi dua. Pertama, membuat dan menuliskan data pada file ini. Kedua, membaca file INI
Membuat dan Menulis File INI
Deklarasikan di unit IniFiles di bagian uses
Uses
IniFiles;
Deklarasikan variabel dengan tipe class TMemIniFiles. Anda dapat mendeklarasikan dimana saja, sesuai keperluan saja. Pada kasus dibawah ini, saya mendeklarasikannya pada FormCreate.
var
Konfigurasi : TMemIniFile;
Instan-kan class TMemIniFile dan letakkan pada satu folder dengan file exe (Anda dapat meletakkannya dimana saja. Suka-suka deh!)
Konfigurasi := TMemIniFile.Create( ExtractFilePath(Application.ExeName) + 'coba.ini');
Dan ingat. Segala setelah variabel instan Konfigurasi tidak digunakan, Anda harus menghapuskan dari memori dengan perintah:
FreeAndNil(Konfigurasi):
Untuk menuliskan data pada File Ini, Anda dapat menggunakan perintah-perintah berikut:
- WriteString(SectionName, Key, Nilai);
- WriteInteger(SectionName, Key, Nilai);
- WriteFloat(SectionName, Key, Nilai);
- WriteBool(SectionName, Key, Nilai);
- WriteDate(SectionName, Key, Nilai);
- WriteDateTime(SectionName, Key, Nilai);
- WriteTime(SectionName, Key, Nilai);
Contoh cara menuliskannya adalah:
try
with Konfigurasi do begin
WriteString('Printer','FontTitle','TAHOMA');
WriteInteger('Printer','PrintQuality',30);
WriteInteger('Printer','PaperHeight',174);
WriteInteger('Printer','PaperWidth',203);
WriteInteger('Printer','LeftMargin',5);
WriteInteger('Printer','RightMargin',7);
WriteInteger('Printer','TopMargin',15);
WriteInteger('Printer','BottomMargin',5);
UpdateFile;
end;
finally
FreeAndNil(Konfigurasi);
end;
Perintah UpdateFile dipergunakan agar data diatas dijadikan file. Tanpa perintah ini, Anda tidak akan mendapatkan file INI sesuai deklarasi Anda.
Setelah file terbentuk, Anda dapat memeriksa isinya dengan software pembaca file Ascii seperti NotePad, berikut ini adalah contoh isi file INI dari masukan diatas:
[Printer]
FontTitle=TAHOMA
PrintQuality=30
PaperHeight=174
PaperWidth=203
LeftMargin=5
RightMargin=7
TopMargin=15
BottomMargin=5
Membaca Kembali Data pada File INI
Nah, setelah menulis, sekarang kita perlu membacanya kembali. (Ngapain juga ditulis tetapi tidak bisa dibaca)
Pertama-tama sama seperti program menulis File Ini. Kita perlu membuat instan class-nya terlebih. Kemudian baru beraksi dengan memanfaatkan beberapa cara membaca file, yaitu:
- ReadString(SectionName, Key, NilaiDefault);
- ReadInteger(SectionName, Key, NilaiDefault);
- ReadFloat(SectionName, Key, NilaiDefault);
- ReadBool(SectionName, Key, NilaiDefault);
- ReadDate(SectionName, Key, NilaiDefault);
- ReadDateTime(SectionName, Key, NilaiDefault);
- ReadTime(SectionName, Key, NilaiDefault);
Untuk membaca data yang sudah saya tulis pada program terdahulu, maka saya membuat prosedur GetDataPrinter seperti dibawah ini:
procedure GetDataPrinter;
var
Konfigurasi : TMemIniFile;
begin
try
Konfigurasi := TMemIniFile.Create(ExtractFilePath(Application.ExeName) + 'Config.ini');
with Konfigurasi do begin
edtPrintQuality.Text := ReadString('Printer','PrintQuality','0');
edtPaperHeight.Text := ReadString('Printer','PaperHeight','0');
edtPaperWidth.Text := ReadString('Printer','PaperWidth','0');
edtLeftMargin.Text := ReadString('Printer','LeftMargin','0');
edtRightMargin.Text := ReadString('Printer','RightMargin','0');
edtTopMargin.Text := ReadString('Printer','TopMargin','0');
edtBottomMargin.Text := ReadString('Printer','BottomMargin','0');
end;
finally
FreeAndNil(Konfigurasi);
end;
end;
0 comments:
Posting Komentar