Anasayfa Kullanıcı Kontrol Paneli Kullanıcı Listesi Takvim Üye Ol/Register  
Language Yeni Mesajlar Yanıtlanmamış Konular Vadi Blog Zirvedekiler Referanslar Üye Atlası Reklam Yönetim
 


Geri Dön   ForumVadisi > Bilgisayar > Programlama
ForumVadisi Kuruluşunun 3.Yılında, Hep Aynı Tadında! Korootkit.1.6_1719 Cars The Videogame ~ No Rapid Cobra 11 Burning Wheels ~ No Rapid Joint Operations: Typhoon Rising ~ No Rapid Transferde inanılmaz olay! Kadıköy'de Timsah Avı: 2-0 10. Dalga Gözaltıları İstanbul'da DivX Pro v7.0.0 - Final Vazgeçtiğinde... Buluş [YARDIM] Duvara Asılan Fanus Çok Şık Spagettiye Özel Çatal Ahşap Dinlenme Koltukları Marine Heavy Gunner: Vietnam Fermuarlı Lamba Atlı Tasarımlar Ağlayan bebeği nasıl sakinleştirirsiniz? Pullar üzerinde sanat Yugi-oh Oyununu Arıyorum Gradius collection Ünlü psikoloğa canlı yayında tokat UEFA Pavlov'a acımadı London Donovan Bayern'de Ümit Karan Gerçekleri ! Dolar günü yükselişle kapadı Denizli'den tek kurşun Konya kupa'ya veda etti. Büyüleyici stiliyle: Nebahat Çehre Ankaragücü'ne kupa morali Tergan'da 2009'un Rengi Kırmızı Tita Antalyaspor'da Diallo Hacettepe'de Gaz sorunu sıcak çatışma habercisi FFXIII'ün yüksek kalitede "oyun içi" taramaları Street Fighter IV için yeni ekran görüntüleri yayımlandı. Fallout 3 yapımcısından GOW3 ve Final Fantasy yorumu Lord of the Rings Conquest'in PC demosu halen yok! Earthrise'ın beta kayıtları başladı Insomniac Killzone 2'yi sevdi! PS3 indirimi suya düştü! Yeni Wiiware oyunu duyuruldu İlk Forza 3 resimleri internete sızdı! Microsoft, 28 Milyon Xbox 360 satışını onayladı PS3'ün satışları tatil sezonuyla birlikte %130 arttı Gears of War 2'nin yaması yakında geliyor StarCraft II Terrans: Wings of Liberty'den 3 yeni ekran görüntüsü İsrail'e meydan okuyan tek adam Bu toplar nereye gidiyor.. Gercekten çok enteresan.. KeoPS Çay__çaydanlık,kahve gifleri Vurulduktan 35 yıl sonra öldü Her şey Ümraniye'de başladı... Savcı Öz'den Güney'e 37 soru "3 Saat", 16-21 Aralık Klavye içinde bir PC Sera etkisi yapan gazlar uzaydan izlenecek Suya Akan Kan Kerbela.... Hindistan cevizinden otomobil parçası üretildi Titreşimli resim yapma Ateşkeste son durum ; Filistinde Barışı Koruma Görevi TÜRKİYE'nin Ruhsal Güç Testi... Bu sabah yapılan operasyonda Emekli yarbayın evinden cephanelik çıktı..!! SON DAKİKA ; İsrail ateşkes önerisini kabul etti. Karışık Wallpaperler cok hoslar Hapse Girenlerin İnanılmaz Değişimi... Total Video Converter v3.20.090104 Ekrana kilitleyen Filistin duası Polonya'da 7 kişi donarak öldü Avanslar yüzde 90 üzerinden yapılacak Bilim dünyasında süper buluş: İlaç Otobüsü Türk gemisi serbest bırakıldı! Yeni klavye ve fareler göz dolduruyor Erdoğanın yanına bırakmazmış SSK'lılar ilaçları parayla mı alacaklar? Chp'den 'demirel'le Sezer Gözaltına Alınacak' Iması Peki nedir bu Misket bombası ??? Acı demeyin! Yiyin kanserden korunun Astronomlar teleskopun 400. yılında Galileo'yu anacak Gülümseyin, bu kalem sizi kaydediyor Balık hafızasının süresi 5 ay çıktı ''Gazze saldırıları Obama'nın İsrail'e hediyesi'' Bilim dünyasında süper buluş Dünya'nın en hızlı motosikleti Pembe iguana Polis Sabih Kanadoğlu'nun Evinde GAZZE'DE SON DURUM: 666 ÖLÜ ve fotoğraflar Lost 3. Sezon Türkçe Her hafta güncellenecek... Bombardımana her gün 3 saatlik ara! Pkk Kürt Kültürünün Ve Sanatının Gelişmesini Engelliyor Rus yetkili, Hamas Lideri Meşal ile görüştü İşte Çin Zekası :: KURNAZ ÇOBAN KOYUN SÜRÜSÜNÜ KURT POSTERİYLE GÜDÜYOR Registry Clean Expert v4.64 Biyografi......HADİSE AÇIKGÖZ Hadise'nin Düm Tek'i çalıntı Mı? Göce Köftesi [Etsiz Köfte] Lafa Bak!. Avrupa'da Soyunana Saygı Duyulur, Burada Soyunmaya Değmez Köfte Şiş Evlilik Yaşı Işte Dünyayı şoka Sokan Israil Vahşetinin Acı Görüntüleri!.. iPhone'a mercek takın !
Cevapla
 
Konu Araçları
Eski 19-11-2008, 23:07   #1 (Kalıcı Bağlantı)
▀▄▀▄RaP▄▀▄▀
 
mythbusters Kullanıcısının Avatarı
 

Delphi′de TIniFile Ve TRegIniFile Bileşenleri

TIniFile
Yazdığınız programlardaki ayarları ya da saklamak istediğiniz verileri sistematik ve pratik bir şekilde saklayıp, istediğinizde de aynı rahatlıkla okumanızı sağlayacak bileşenimizin adı TIniFile. Hemen belirtelim bu bileşeni kullanmak için "IniFiles" unit'ini programınıza dahil etmeniz gerekiyor.
".ini" uzantısına sahip dosyaları eğer notepad ile açtıysanız köşeli parantezlerle belirtilen ana bölümlerin altında çeşitli değişkenler ve karşılarına eşittirden sonra yazılmış çeşitli değerler olduğunu görmüşsünüzdür. Eğer bunu hiç yapmadıysanız açın bakın bir tanesine, öyleler . Burada köşeli parantezler arasında kalan kısım o "bölümün(section)" adı oluyor. Farklı bölümlerde aynı isimde değişkenler kullanılabiliyor. Ayrıca bu bölümler verileri kategorize etmenize de yarıyor. Bileşenimiz direk bir bölüme ait herhangi bir değişkenin değerini okuyabildiği gibi size bütün bölüm adlarını, bir bölümün içindeki değişken adlarını, isim-değişken çiftlerini de çeşitli şekillerde verebiliyor. Yani oldukça esnek bir kullanım sözkonusu. Lafı daha fazla uzatmadan nasıl kullanıldıklarına bakalım...


Öncelikle TIniFile tipide bir değişken tanımlıyoruz.
ayarlar: TIniFile;
Daha sonra bunu oluşturmamız gerekiyor.
ayarlar:= TIniFile(dosyaadi);
Buradaki "dosyaadi" string tipinde bir değişken veya direk elle girilen bir değer olabilir. Oluşturulacak veya okunacak ini dosyasının tam yolunu içermeli. Eğer bu isimde bir dosya yoksa oluşturulur ve yine dosya yoksa bile okuma işlemleri esnasında sorun çıkmaz merak etmeyin. Oraya da geliyoruz yavaş yavaş.
Şimdi, önce yazma işlemlerinden bahsedelim bence. Sonuçta daha elimizde hazır bir dosya yok. Bu bileşen sık kullanılan birçok değişken tipini rahatça yazmaya yarayan fonksiyonlara sahip. String tipinde bir değer yazmak için
ayarlar.WriteString('bölüm','değişkenadı',değer);
Şeklinde bir fonksiyon kullanabilirsiniz mesela. Burada bölüm yerine bölüm adı, değişken adı yerine dosyadaki değişken adı ve değer yerine de yazılacak değeri koymalısnız. Buradaki tüm parametreler sabit değerler olabileceği gibi string tipinde, gerekli bilgileri taşıyan değişkenler de olabilirler. String yazdırma dışında aynı şekilde kullanılan sadece sonundaki değer parametresi, yazacağı değişken tipine göre değişen
WriteInteger, WriteBool, WriteDate, WriteDateTime, WriteTime, WriteFloat ve WriteBinaryStream fonksyionları var. Bunlardan sonuncu olanı KESİNLİKLE önermiyorum. Hem gereksiz yere boyutu arttırıyor hem de belirli bir boyuttan daha büyük dosyalarla çalışmıyor.
Şimdi bu fonksiyonların okuma versiyonlarının bir örneğini göstereceğim, çünkü yapı tamamen aynı. Sadece isimler ve tipler değişiyor. String okuma fonksiyonumuz
okunan:=ayarlar.ReadString(bölüm,değişkenadı,varsa yılan değer);
Gördüğünüz gibi burada farklı olarak "varsayılan değer" bölümü var. Bu bölüm eğer okumaya çalıştığınız değişken herhangi bir sebepten yoksa(dosya yok, ilgili bölüm yok, değişken yok) değer olarak buraya koyulan değeri döndürüyor. Yani burada "okunan" isimli değişkene ya dosyadan okunan değer ya da böyle bir değer okunamadıysa varsayılan değer atanıyor. Yani dosyanın olup olmaması çok büyük bir sorun değil . Bütün diğer yazma fonksiyonlarının başındaki "Write" kısımlarını "Read" yapıp yukarıdaki kurala göre kullanabilirsiniz.
Bir de çoklu değer okumak için kullanılan fonksiyonlar var. Mesela "ReadSection" fonksiyonu.
ayarlar.ReadSection(bölümadı,liste);
Bu fonksiyon, "bölümadı" ile belirtilen bölümdeki tüm değişken isimlerini "liste" yerine vereceğiniz TStrings tipindeki yapıya kopyalar.
ayarlar.ReadSections(liste);
Bu fonksiyon "liste" ile verilen TStrings tipindeki yapıya dosyadaki bölüm isimlerini kopyalar.
ayarlar.ReadSectionValues(bölümadı,liste);
Bu fonksiyon da "bölümadı" ile belirtilen bölümdeki "değişken=değer" çiftlerini "liste" yerine verdiğiniz TStrings yapısına kopyalar.
Böylece fonksiyonlarımızın sonuna geldik. İşiniz bitince değişkeni serbest bırakmayı unutmayın.
ayarlar.Free;
TRegIniFile
Bu tip de TIniFile'ın değerleri kayıt defterinde saklayan versiyonudur. Bunu kullanmak için "Registry" unit'ini projenize dahil etmeniz gerekir. Kullanımında TIniFile'dan tek farkı bunu oluşturuken(create metoduyla) dosya adı yerine HKEY_CURRENT_USER ana anahtarı altında bir alt anahtar adı girmeniz gerekmesi. Bu istediğiniz kadar içerideki bir anahtar olabilir(örn: Software\Microsoft\Windows). Kayıt defteri ile daha detaylı bilgi için "Windows" başlığı altındaki "Kayıt Defteri" yazı diziine bakabilirsiniz. Diğer tüm fonksiyonlar ve kullanımları aynı. Yine işiniz bitince bunu da serbest bırakmalısınız. Kolay gelsin.
__________________
----
---
--

İmza resmi fLy a Aittir.Güzel çalışma için Teşekkürler.
Her zaman mutluluğun doruğundayken gülünmez, bazen sırf hayata gıcıklık olsun diye uçurum kenarındayken bile gülümseyeceksin.
Huzuru Bozmaya çalışanın huzurunu bozarım.... (Anlayana)

------
Statü: Çevrimdışı
 
Alıntı Yaparak Cevapla
Google Reklamları
Cevapla

Konu Araçları


ForumVadisi vBulletin yazılımı kullanmaktadır.
Yazılımın tüm hakları ©2000 - 2007, Jelsoft Enterprises Ltd.'e aittir.
Search Engine Optimization by vBSEO 3.1.0
Site üzerindeki yapılandırma ve içeriğin tüm hakları ©2005 - 2007 ForumVadisi'ne aittir.
Bilgi için:info@forumvadisi.com




[Çıkış: 68.20 Kb. Sıkıştırıldıktan Sonra: 66.36 Kb. Tasarruf: 1.84 Kb. (2.69%)]