Güzel Paylaşım

Örnek Verebilirmisiniz?

Cogu zaman gelistirdigimiz program icin gerekli olan parametrelerin kaydedilmesi gerekir. Kisisellestirilebilir programlarda bu durum daha cok karsimiza cikar. Ornek olarak kullaniciya textbox arkaplan rengini degistirebilme kolayligi sagladiniz. Peki kullanici bu ozelligi sectiginde bu deger nereye yazilacak? Database? Hayir, database gerektirmeyen bir yazilim gelistirdiginizi dusunursek sadece kullanicinin sectigi textbox arkaplan rengini saklamak icin bir database kullanilmasi dogru olmayacaktir. Peki Text dosyalari? Evet mevcut olarak cogu programci parametrelerin saklanmasi icin textbox kullanmaktadir. Fakat textbox kullanimi tam verimlilik saglamayacaktir. Nedeni ise textbox'a yazilacak yeni bir deger icin 2. bir gecici dosya acilip mevcut degerlerin 2. dosyaya aktarilmasi bu arada yeni degerin 2. dosyaya islenmesi ve son olarak 1. orjinal dosyanin silinip 2. gecici dosyanin isminin degistirilmesi cok parametre tuttugunuz bir programda yavas kalacaktir. Ini dosyalarinin yapisi Ini dosyalari Section , Parametre isimleri ve degerlerinden olusur. Ornek vermek gerekirse; [Form1"> Genislik=3800 Yukseklik=4000 Burada "[">" icinde yazili olan "Form1" bolum ismi, "Genislik" parametre ismi ve "="'den sonra olan bolumler ise degerlerdir. Dogal olarak su soruyu soracaksiniz, Ini dosyalarida ayni sekilde text dosyalarina benzer, parametre okuma/yazma isleminde hizi arttirmak icin ne tur bir yontem kullanacagiz? Parametre okuma/yazma islemi icin API kullanacagiz. Api kullanimi yazilacak bir kod'dan daha hizli sonuc verecektir. Kullanilacak API'ler GetPrivateProfileString Lib "kernel32. dll" Alias "GetPrivateProfileStringA" _ As Long GetPrivateProfileInt Lib "kernel32. dll" Alias "GetPrivateProfileIntA" _ As Long WritePrivateProfileString Lib "kernel32. dll" Alias "WritePrivateProfileStringA" _ As Long Her kullanimda karmasik api kodlarini kullanmamak icin yapilacak okuma/yazma islemleri icin fonksiyonlar yaratmamiz gerekir. Kullanilacak Fonksiyonlar ReadStringFromIni - Ini dosyasinin istenen kismindan string degisken turundeki parametre bilgisinin okunmasi Public Function ReadStringFromIni As String ' 'Amac : Programın ini dosyasında istenen kısmından belirtilen ' değişkenin değerini alır. Değişken türü string tir. 'Giris : Ini dosyasının yeri ve adi, ini dosyasında okunacak kısım ' ini dosyasında okunacak değişken ' strIniFile : Ini dosyasının yeri ve adi ' strSection : Okunacak değişkenin ini dosyasında bulunduğu ' kısım ' strVariable : Okunacak değişkenin adı ' strDefault : Okunacak değişkenin defauşlt değeri, ' Eğer değişken ini dosyasoında bulunamazsa fonksiyon bu ' değeri döndürür. 'Cikis : Okunan değişkenin değeri ' Dim strValue As String ' Okunan değer Dim lValueLenght As Long ' Okunan değerin uzunluğu 'Okunacak değer için 255 karakterlik yer ayrılıyor strValue = Space(255) 'INI dosyasından okuma ; lValueLenght = GetPrivateProfileString(strSection, strVariable, strDefault, _ strValue, 255, strIniFile) 'Değer uzunluğuna göre kendisi için ayrılan yerden alınıyor strValue = Left 'Fonksiyona değer olarak atanıyor. ReadStringFromIni = strValue End Function ReadIntFromIni - Ini dosyasinin istenen kismindan integer degisken turundeki parametre bilgisinin okunmasi Public Function ReadIntFromIni As Long ' 'Amac : Programın ini dosyasında istenen kısmından belirtilen ' değişkenin değerini alır. Değişken türü integer dir. 'Giris : Ini dosyasının yeri ve adi, ini dosyasında okunacak ' kisim ini dosyasında okunacak değişken ' strIniFile : Ini dosyasının yeri ve adi ' strSection : Okunacak değişkenin ini dosyasında bulunduğu ' kısım ' strVariable : Okunacak değişkenin adı 'Cikis : Okunan değişkenin değeri ' Dim lValue As Long ' Okunan değer 'INI dosyasından okuma; eğer değişken bulunamazsa değer olarak -1 döndürülüyor lValue = GetPrivateProfileInt(strSection, strVariable, -1, strIniFile) 'Fonksiyona değer atanıyor 'Eğer değer okunamadıysa; If lValue = -1 Then ReadIntFromIni = -1 'Okunduysa; Else ReadIntFromIni = lValue End If End Function WriteToIni - Ini dosyasinin istenen kismina integer veya string degisken turundeki parametre bilgisinin yazilmasi Public Function WriteToIni As Boolean ' 'Amac : Programın ini dosyasında istenen kısmından belirtilen ' değişkene belirtilen verilen değeri yazar. ' Yazdırılacak değerin string yada sayı olmas önemli değil. ' Yazdırılacak değer sayı olsa bile string gibi yazdırılıyor. ' Ancak okunurken sayı okunur gibi okunması gerek. 'Giris : Ini dosyasının yeri ve adi, ini dosyasında yazılcak kısım, ' ini dosyasında yazılacak değişken, değişkene yazılacak ' değer ' strIniFile : Ini dosyasının yeri ve adi ' strSection : Yazdırılacak değişkenin ini dosyasında ' bulunduğu kısım ' strVariable : Yazdırılacak değişkenin adı ' strValue : Yazılacak değer 'Cikis : True/False ' Dim lReturn As Long 'api fonksiyonun dönüş değeri (1:Başarılı, 0:Başarısız) 'INI dosyasına yazma lReturn = WritePrivateProfileString 'Yazma işlemini başarılı olup olmadığı kontrol edilerek fonksiyona atanıyor. 'Başarısız ise; If lReturn = 0 Then WriteToIni = False 'Başarılı ise; Else WriteToIni = True End If End Function By

paylasım için çok tşk

eger ini dosyalarını merak eden varsa buraya örnek yazarım ama 1-2 kişi eğer merak ediyorsa valla uğraşılmaz<.<