ini dosya oluşturma, yazma ve okuma.

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

ini dosya oluşturma, yazma ve okuma.

Mesaj gönderen vedatkaba »

arkadaşlar hepinize merhaba, ben sizden sadece bir örnek istiyorum.

İni dosyasını oluşturma, değer yazma ve değer okuma hakkından.
ben program ayarlarını saklamak istiyorum onun için gerekli.

yani messala button un boyu 2 ise ayrı bir programda edit içinde varsayılna ayarı görecem (tabi ilk açılışta ini dosyasına geçerli ayarları kaydetcem.)burda yeni değerler vercem ilk önce ini dosyasına kayıt edecek daha sonra program üzerinde etkili olacak ve program açılışta bu ini dosyasındaki ayarları ve değerleri okuyarak açacak.

arama yapmamı istemeyin,aradım içimi açan örnek göremedim.

Çok teşekkür ederim.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Mesaj gönderen selm@n »

Öncelikle Unit'inize IniFiles ekleyin...
Yazmak için;

Kod: Tümünü seç

Var
INIDosya : TIniFile;

 Begin
   INIDosya := TIniFile.Create('C:\Sistem.ini');
   INIDosya.WriteString('GenelAyarlar','ServerAdi',Edit1.Text);
   INIDosya.Free;
end;
Okumak İçin;

Kod: Tümünü seç

Var
GDServerAdi : String;
INIDosya      : TIniFile;

 Begin
   INIDosya         := TIniFile.Create('C:\personel\Systems.ini');
   GDServerAdi    := INIDosya.ReadString('GenelAyarlar','ServerAdi','');
   INIDosya.Free;
   edit1.Text:=GDServerAdi;
end;
Kolay Gelsin;
;)
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

İlginize teşekkür ederim ama birşey sorabilirmiyim.

Şimdi edit1 ne işe yarıyor ,yazarken dosya yolu farklı okurken yine dosya yolu farklı.Burda button1 in height özelliğini değiştirip kaydetsem açılışta kaydettiğim değer yüklenecekmi. açıkcası açıklama yaparsanız o kadar iyi olur ki.Rica ediyorum selman hocam.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
selm@n
Kıdemli Üye
Mesajlar: 442
Kayıt: 01 Oca 2004 11:52
Konum: Adapazarı
İletişim:

Mesaj gönderen selm@n »

hocam yazarken edit1 in içine server adını yazıyorum ve kaydediyor..
ini file içi şu şekilde oluyor...

Kod: Tümünü seç

[GenelAyarlar]
ServerAdi=DELPHITURKIYE
programım açılırkende INI file okuyorum ve server adını edit1 veya 2 atıyorum okumanın ve yazmanın örneği göstermek amacıyla...

sizde butonların editlerin vb. gibi şeylerin nelerini tutmak istiyotsanız belirleyin ve ini file'nıza yazınız.ve program açılırken okutup bilgileri yükleyiniz.

forumda bir ara geçmişti zannedersem.
Kolay gelsin..
;)
Kullanıcı avatarı
vedatkaba
Kıdemli Üye
Mesajlar: 866
Kayıt: 06 Oca 2004 06:50
Konum: DARICA/GEBZE

Mesaj gönderen vedatkaba »

tamam hocam anladım, değiştirdiğiniz ayar veya verdiğiniz edit1 den inifile da belirtilen kısma aatılarak yazılıyor.

Çok sağol'un hocam başarılar ve kolay gelsin.
***********************************
Kamil odur ki; koya dünyada bir eser,
Eseri olmayanın, yerinde yeller eser.

***********************************
kite
Üye
Mesajlar: 47
Kayıt: 11 Oca 2005 02:11

Mesaj gönderen kite »

- Delphi'de *.ini file's kontrollerini anlamak Tasarladığımız programımıza ait değişken, tanım yada ayarları tutmak için kimi zaman harici bir dosya ihtiyacı duyarız.

- Bunu Registry veya herhangi bir metin dosyasında yapabileceğimiz gibi Windows’un bir standartı olan *.ini dosyalarında da tutabiliriz. Bu tamamen kişinin kullanım kolaylığı ve ihtiyacına göre değişir.

- Peki nasıl hazırlayacağız *.ini dosyacıklarımızı? Tanıyarak yazmaya başlayalım;

- [....] Köşeli parantezler arasına Section dediğimiz başlık-bölüm kısmını tanımlarız. Bir section Bölüm adını ifade eder ve başka bir section’ın (bölümün) başladığı yere kadar devam eder.

- Aşağıdaki örnekte [form_genel] section’ı [form_metin] section’ına kadar devam etmektedir. Her section’ın (bölümün) altında kendisine ait identify (tanımlar) bulunur. Her identify içinde bir değer taşır.

Resim

- Kabaca ini dosyalarını anladık zannediyorum. Örneğimizle de pekiştireceğiz eminim.

- Şimdi Delphi oturumumuz açtık ve sabırsızlıkla metnimizi okuyarak uyguluyoruz:

- Programımız üzerine 2 TListbox, 1 Tbutton, 1 TOpenDialog ve 1 TEdit yerleştiriyoruz. Benim eklediğim bir iki fazla Label la ekran görüntümüz aşağı yukarı böyle olacaktır;
Resim

- Öncelikle Uses bloğuna inifiles‘i ekleyerek programımıza dahil ediyoruz.

Resim

- Tüm uygulamada kullanabilmemiz için değişkenimizi değişkeni implemantation üzerinde bulunan var bloğuna yazıyoruz. Ben değişkenimizin adını hCevizini olarak tanımladım, tipi ise Tinifile.

Resim

- Tanımladığımız değişkeni uygulama üzerine yerleştirdiğimiz button içinde yaratıp ( create ) harici bulunan *.ini dosyasına bağlıyoruz.

- Section’ları Listbox1’e diziyoruz. Daha sonra ise bu ayarları program içinde okuyacak ve işleyeceğiz. ( inifiles uygulamasının dışında programlama detaylarına girmiyorum, bu düzeyde bilindiğini varsayıyorum)
Resim

- ListBox1deki seçilmiş olan section’ın içeriğindeki tanımların listbox2’ye yazılmasını istiyoruz. Bunun için Listbox1 in onClick yordamına;

Resim

- Koddaki sıralamaya göre, Edit1’in, Listbox1deki seçili sectionın, Listbox2deki seçili Identfy’nin değerine eşitlenmesini istiyoruz.
Resim

- Okuma işlemlerimiz bittiğinde dosyamızın kapatılmasını programın kapatılmasına bağlıyoruz.
Resim

- Buraya kadar başarılı bir şekilde *.ini dosyamızdan okuduk. Peki nasıl değişiklikleri kaydedeceğiz?

- Kolay! Formumuzun altına bir Kaydet tbutonu, bir adet TSaveDialogBox yerleştiriyoruz. Kaydet butonuna kod yazmadan önce Edit1’in onKeyPress olayında, varolan değişikliği sayfaya yazmasını yada değişiklik yapılmışsa ve yanlışlık filan yapılmışsa eski haline gelmesini sağlıyoruz.
Resim

- Dosyada değişiklik yaptık veya iptal ettik. Artık sıra katdetmeye geldi.
Resim

- Eveeet hepsi bu işte. Aşağıda kaynak kodun tamamını ve linkte çalışan uygulamanın sıkıştırılmış dosyasını indirebilirsiniz.

- Programın son görüntüsü;
Resim

( @Hmustak (A.K.A.@ExPErT): 24/07/2004 cevizforum)

@kite yazdı:www.ceviz.net adresinden copy/paste yaptım
Delphi'de *.ini file's kontrollerini anlamak (Hmustak Tarafından Hazırlanmıştır) Tasarladığımız programımıza ait değişken, tanım yada ayarları tutmak için kimi zaman harici bir dosya ihtiyacı duyarız. Bunu Registry veya herhangi bir metin dosyasında yapabileceğimiz gibi Windows’un bir standartı olan *.ini dosyalarında da tutabiliriz. Bu tamamen kişinin kullanım kolaylığı ve ihtiyacına göre değişir. Peki nasıl hazırlayacağız *.ini dosyacıklarımızı? Tanıyarak yazmaya başlayalım;[....] Köşeli parantezler arasına Section dediğimiz başlık-bölüm kısmını tanımlarız. Bir section Bölüm adını ifade eder ve başka bir section’ın (bölümün) başladığı yere kadar devam eder. Aşağıdaki örnekte [form_genel] section’ı [form_metin] section’ına kadar devam etmektedir. Her section’ın (bölümün) altında kendisine ait identify (tanımlar) bulunur. Her identify içinde bir değer taşır.http://img24.exs.cx/img24/5762/4017.jpgKabaca ini dosyalarını anladık zannediyorum. Örneğimizle de pekiştireceğiz eminim.Şimdi Delphi oturumumuz açtık ve sabırsızlıkla metnimizi okuyarak uyguluyoruz: Programımız üzerine 2 TListbox, 1 Tbutton, 1 TOpenDialog ve 1 TEdit yerleştiriyoruz. Benim eklediğim bir iki fazla Label la ekran görüntümüz aşağı yukarı böyle olacaktır;http://img24.exs.cx/img24/699/4019.jpgÖncelikle Uses bloğuna inifiles‘i ekleyerek programımıza dahil ediyoruz.http://img24.exs.cx/img24/2936/4030.jpgTüm uygulamada kullanabilmemiz için değişkenimizi değişkeni implemantation üzerinde bulunan var bloğuna yazıyoruz. Ben değişkenimizin adını hCevizini olarak tanımladım, tipi ise Tinifile. http://img24.exs.cx/img24/1765/4021.jpgTanımladığımız değişkeni uygulama üzerine yerleştirdiğimiz button içinde yaratıp ( create ) harici bulunan *.ini dosyasına bağlıyoruz. Section’ları Listbox1’e diziyoruz. Daha sonra ise bu ayarları program içinde okuyacak ve işleyeceğiz. ( inifiles uygulamasının dışında programlama detaylarına girmiyorum, bu düzeyde bilindiğini varsayıyorum)http://img24.exs.cx/img24/4719/4022.jpgListBox1deki seçilmiş olan section’ın içeriğindeki tanımların listbox2’ye yazılmasını istiyoruz. Bunun için Listbox1 in onClick yordamına ;http://img24.exs.cx/img24/1993/4023.jpgKoddaki sıralamaya göre, Edit1’in, Listbox1deki seçili sectionın, Listbox2deki seçili Identfy’nin değerine eşitlenmesini istiyoruz.http://img24.exs.cx/img24/1147/4024.jpgOkuma işlemlerimiz bittiğinde dosyamızın kapatılmasını programın kapatılmasına bağlıyoruz.http://img24.exs.cx/img24/6599/4025.jpgBuraya kadar başarılı bir şekilde *.ini dosyamızdan okuduk. Peki nasıl değişiklikleri kaydedeceğiz? Kolay! Formumuzun altına bir Kaydet tbutonu, bir adet TSaveDialogBox yerleştiriyoruz. Kaydet butonuna kod yazmadan önce Edit1’in onKeyPress olayında, varolan değişikliği sayfaya yazmasını yada değişiklik yapılmışsa ve yanlışlık filan yapılmışsa eski haline gelmesini sağlıyoruz.http://img24.exs.cx/img24/1390/4026.jpgDosyada değişiklik yaptık veya iptal ettik. Artık sıra katdetmeye geldi.http://img24.exs.cx/img24/4979/4027.jpgEveeet hepsi bu işte. Aşağıda kaynak kodun tamamını ve linkte çalışan uygulamanın sıkıştırılmış dosyasını indirebilirsiniz. Soru ve sorunlarınız için heran http://www.ceviz.net forumlarındayız. Kolay gelsin Hakan MÜŞTAKhakan@mustak.orgProgramın son görüntüsü ;http://img24.exs.cx/img24/3125/4028.jpg Last edited by ExPErT : 24/07/2004 at 20:51. Sebep: Delphi'de *.ini file's kontrollerini anlamak
// Edit
// @mrmcop tarafından okunaklı hale dönüştürülmüştür... @admin'lerimizin uygunsuz bulduğu taktirde mesajı silme hakkı saklıdır...
// aşağıdaki mesajda belirttiğim konuya yönelik bir uygulama yapılmadı... Başka forumlardaki bilgileri direkt değil de birkaç dakikanızı ayırıp kendi bilginizle yoğurarak yazın... :!:
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@kite

- Lütfen yazdıklarınızı düzeltiniz... Bu şekilde karışık yazılmış bir metnin ne kadar faydalı olacağı tartışılır. Ayrıca sizin bir sorunuz olsaydı ve cevaben bu şekilde bir metin verilmiş olsaydı nasıl karşılardınız onu düşününüz.. :idea:

- Ek olarak başka bir sitenin reklamını yapıp yapmamak etik olarak ne kadar doğru buna siz karar verin... Kim bilir, makaleyi yazan kullanıcıya vefa borcunuz vardır vs. Bunu o sitedeki makaleyi yazan kullanıcı ile çözün... Müsade isteyin, olumlu cevap alırsanız değerlendirin vs. :?

- Bunu bir kenara bırakıp siteden faydalanarak kazandığınız bilgiyi programcılık süzgecinizden geçirip anladığınız kadarını kendi cümlelerinizle ifade ederseniz hem size hem de soruyu cevaplamak istediğinizi arkadaşımıza daha faydalı olacaktır. :)

- Zaten gerekli cevap verilmiş ve mesaj da çözüm olarak arkadaşımız tarafından değerlendirilmiş... :idea:
Resim
Resim ....Resim
kite
Üye
Mesajlar: 47
Kayıt: 11 Oca 2005 02:11

Mesaj gönderen kite »

:) birde dövseydiniz bari :)
Metni gönül rahatlığıyla silebilirsiniz. İnanın arkadaşın metnini okuduktan sonra -sadece- yardımcı olmak için kopyaladım. Bilseydim OLAY olacağını vallahi yapmazdım.
Disiplinli ve hakim davranmanız sitedeki seviyeyi korumakta ama kullanıcıyıda kırabilmektedir. En iyi hakemin kendini unutturan hakem olduğunu hatırlatmayı unutmadan, yaptığım yanlışlıktan ötürü herkezden özürdilerim.
Kullanıcı avatarı
mrmarman
Üye
Mesajlar: 4740
Kayıt: 09 Ara 2003 08:13
Konum: İstanbul
İletişim:

Mesaj gönderen mrmarman »

@kite yazdı:birde dövseydiniz bari

:lol:
Metni gönül rahatlığıyla silebilirsiniz. İnanın arkadaşın metnini okuduktan sonra -sadece- yardımcı olmak için kopyaladım. Bilseydim OLAY olacağını vallahi yapmazdım.
- Önemli olan bunun tekrarının olmayacağını bilmek. :wink:

- copy/paste yapsan bile postu anlaşılır kılman lazım. Bilgin dahilinde cevap yazma medeni cesaretini gösterdiğine göre, bu görev de senin ödevindir... Yani gönderdiğim mesaj sayına (tırnak içerisinde sohbet hariç) karşı tarafa faydası dokunmuş mesaj olarak 1 eklenmesi en önemlisi... :wink:
@kite yazdı:En iyi hakemin kendini unutturan hakem olduğunu...
:lol:
- Her post'u bilgi olan bu sitede soru sorarken de, cevap mesaj yazarken de gerekli itinayı göstereceğin için şimdiden teşekkürler... :idea:
Resim
Resim ....Resim
Kullanıcı avatarı
gkimirti
Admin
Mesajlar: 1956
Kayıt: 02 Eyl 2003 04:44
Konum: İstanbul

Mesaj gönderen gkimirti »

hocam aslında disiplin hayatımızın her asamasına geciremesekte, yapılması gerekli bir harekettir. Bu siteyide ayakta tutan ve populer yapan bence bu disiplindir. İnsanoğlu belli bir düzen içerisinde yaşamayı arzulamıştır ve bunun için kanunlar,sistemler icat etmiştir bu da gösteriyor ki hakem adil ve düzeni sağlıyabiliyor ise hiç kimse tarafından unutulmaz.
Eğer adil olduğu halde hakemi unutan var ise, adam kayıran bir hakem arıyor ise adaletten anlamıyor demektir.
Lütfen bu yazdıklarımı yapıcı olarak değerlendirin.
Keşke kendimize karşı da disiplinli davranabilsek :( artık bu noktadan sonra nefs muhasebesi giriyor isin icine :)
ÜŞENME,ERTELEME,VAZGEÇME
Kullanıcı avatarı
KOROGLUCW
Üye
Mesajlar: 36
Kayıt: 02 May 2013 09:10
İletişim:

Re: ini dosya oluşturma, yazma ve okuma.

Mesaj gönderen KOROGLUCW »

combobox değerini nasıl yazdıra bilirim ? kusrua bakmayın uzun zaman olmuş ama şuan gerekli benim için.
text değerinin mi yoksa items değerini mi veya ne gibi bir işlem yaptırmam gerekiyor ki?
En iyi Sistem fişi çekilmiş Sistem'dir.
Cyber-Warrior.org/K@R@GLU
Cevapla