|
| |||||||
![]() |
| | Seçenekler |
|
#1
| ||||||
| ||||||
Ini dosyalarinin kullanimiIni dosyalarinin kullanimi 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 (or:muhendislik progr+++) 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(Bolum) , 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" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As Any, _ ByVal lpDefault As String, _ ByVal lpReturnedString As String, _ ByVal nSize As Long, _ ByVal lpFileName As String) As Long GetPrivateProfileInt Lib "kernel32.dll" Alias "GetPrivateProfileIntA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal nDefault As Long, _ ByVal lpFileName As String) As Long WritePrivateProfileString Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _ (ByVal lpApplicationName As String, _ ByVal lpKeyName As String, _ ByVal lpString As String, _ ByVal lpFileName As String) As Long Her kullanimda karmasik api kodlarini kullanmamak icin yapilacak okuma/yazma islemleri icin fonksiyonlar yaratm+++z gerekir. Kullanilacak Fonksiyonlar -------------------------------------------------------------------------------- ReadStringFromIni - Ini dosyasinin istenen kismindan string degisken turundeki parametre bilgisinin okunmasi Public Function ReadStringFromIni(strIniFile As String, strSection As String, _ strVariable As String, _ strDefault As String) 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(strValue, lValueLenght) 'Fonksiyona değer olarak atanıyor. ReadStringFromIni = strValue End Function ReadIntFromIni - Ini dosyasinin istenen kismindan integer degisken turundeki parametre bilgisinin okunmasi Public Function ReadIntFromIni(strIniFile As String, strSection As String, _ strVariable As String) 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(strIniFile As String, strSection As String, _ strVariable As String, strValue As String) 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 (Başarılı/Başarısız) '************************************************* **************** 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(strSection, strVariable, _ strValue, strIniFile) '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 |
![]() |
| Seçenekler | |
| |
Benzer Konular | ||||
| Konu | Konu Açanlar | Forum | Cevaplar | Güncel Mesajlar |
| C ++ Stl Kullanimi | romeo655 | Web Dersleri | 0 | 10-04-2008 11:45 |
| .htaccess ile SSI veya Sunucu Tarafinda HTML dosyalarinin Islenmesi | Professionel | Programlama Makaleleri | 0 | 22-11-2007 06:20 |
| .htaccess dosyalarinin baskalari tarafindan goruntulenmesini engellemek | Professionel | Programlama Makaleleri | 0 | 22-11-2007 06:19 |
| Resimlerde 'MAP' kullanimi | kadınca | Html | 0 | 09-11-2007 10:41 |
| Sayfalarda tablo kullanimi | kadınca | Html | 0 | 09-11-2007 10:40 |