.ini dosyası ile ilgili işlemleri (inifiles kütüphanesini) ele alalım bu dersimizde.
Konu: .ini Dosyası Okuma ve Yazma
Bir program geliştiriyoruz ve ufak tefek bir kaç ayarı biyerlerde saklamamız lazım birkaç alternatif olarak aşağıdakileri söyleyebiliriz.
1) Regedit e Değer yazmak ve okumak
2) .txt dosyası yaparak değer yazmak ve okumak
3) .ini dosyası oluşturmak değer yazmak ve okumak
4) Bir veritabanı oluşturup orda bilgileri saklamak.
5 6 7 diye alternatifler çoğalır da çoğalır..
En çok kullanılanlardan biri olan .ini dosyasını nasıl kullanıcağımızı size anlatmaya çalışacağım.
Başlıyoruz...
İlk olarak kendimize bir senaryo yazalım.
Bir proje geliştiriyoruz ve veritabanı bilgilerini değişken bir şekilde saklamamız gerekiyor. Bu bilgiler neler olsun?
Veritabanın adresi (DBip olsun adı )
Veritabanının adı (DBname olsun)
Veritabanının kullanıcı adı (DBuser olsun)
Veritabanının şifresi (DBpass olsun)
Şimdi bi form hazırlıyoruz. Forma eklenecek bileşenler:
- 4 tane Tedit
- 2 tane Tbutton
ini dosyasını kullanmamız için bize Delphi
inifiles kütüphanesini yapmış.
USES kısmına inifiles; olarak ekliyoruz. Aşağıdaki gibi olacak:
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,inifiles;
Şimdi formumuza eklediğimiz 1. Tbutton'un onClick olayını aşağıdaki gibi düzenleyelim. Bunlar kaydetmek için:
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
var
ini1 : TINIFile; {Oluuşturucağımız ini dosyası}
DBip,DBname,dbuser,DBpass : string; { ini dosyasına ekleyeceğimiz bilgilerin değişkenleri }
begin
dbip :=Edit1.Text; { Edit1 e girdiğimiz değeri DBip değişkenine atıyoruz}
DBname:=Edit2.Text; { Edit2 ye girdiğimiz değeri DBname değişkenine atıyoruz}
dbuser:=Edit3.Text; { Edit3 e girdiğimiz değeri DBuser değişkenine atıyoruz}
DBpass:=Edit4.Text; { Edit4 e girdiğimiz değeri DBpass değişkenine atıyoruz}
case Application.MessageBox('Ayarlar Kaydedilsinmi ?','Soru',MB_OKCANCEL + MB_ICONQUESTION) of
{ Soruyoruz Kaydedilsinmi kaydedilmesinmi ? Belki fikir değiştirebilir kullanıcı :) }
IDOK : { tamam ulen kaydedilsin derse ilk end; e kadar olan kodları işlicek yani değerleri yazıp ini dosyasını oluşturcak}
begin
ini1 := TINIFile.Create( ExtractFilePath(Application.ExeName)+'SETTINGS.INI');
{ bir üst satırda ini dosyamızı kaydediceği yer i belirledik (exe dosyamız nerdeyse onun yanına Settings.ini olarak kaydedecek }
ini1.WriteString('AYARLAR','IP', IP);
ini1.WriteString('AYARLAR','DB_NAME', DBname);
ini1.WriteString('AYARLAR','DB_USER_NAME', dbuserName);
ini1.WriteString('AYARLAR','DB_PASS', DBpass);
ini1.Free; { buraya dikkat dosya kullanılıyor hatası almamak için dosyayla işimiz bittiğinde serbest bırakıyoruz}
end;
IDNO : Abort; { yok abi ben değişiklik yapcam kaydetmicem diyenler içinde işlemi iptal ediyoruz... }
end;
2. Tbutton un onClick olayını aşağıdaki gibi düzenleyelim. Bunlar da okumak için:
PHP Kod: Kodu kopyalamak için üzerine çift tıklayın!
var
ini1 : TINIFile; {Oluuşturucağımız ini dosyası}
DBip,DBname,dbuser,DBpass : string; { ini dosyasına ekleyeceğimiz bilgilerin değişkenleri }
begin
ini1 := TINIFile.Create( ExtractFilePath(Application.ExeName)+'SETTINGS.INI');
DBip:= ini1.ReadString('AYARLAR','IP','');
DBname:= ini1.ReadString('AYARLAR','DB_NAME', '');
dbuser:= ini1.ReadString('AYARLAR','DB_USER_NAME', '');
DBpass:= ini1.ReadString('AYARLAR','DB_PASS', '');
ini1.Free;
edit1.text:=dbip;
edit2.text:=dbname;
edit3.text:=dbuser;
edit4.text:=dbpass;
end;
Yazar: Ali Yeşiloğlu