- Yasaklandı
- #1
CSharp
Banlı Üye
Merhaba Arkadaşlar!
C# Kodlayan birçok kişinin merak ettiği araştırsa bile sadece kısaca ve tam olarak anlatılmamış kaynaklara ulaştığı .ini yazdırma ve okuma konusunu detaylı olarak size aktaracağım!
Arkadaşlar ilk önce yapmamız gerekn işlem kernel32'in içinde bulunduğu "WritePrivateProfileString" ve "GetPrivateProfileString" methodlarını kernel32'den çekmemiz gerek
bunun için DllImport metodunu kullanacağız.
Not : Lütfen Kopyala&Yapıştır yapmayınız yaptığınız taktirde öğrenemiyeceksiniz!
Önemli Bilgi :
Peki bu önemli bilgilere göre nasıl .ini dosyasındaki değerleri okuyabiliriz?
Örnek okuma methodu :
Not : Eğer ki bana soruyorsanız neden sb.ToString()'i döndürüp sb.Clear() yapmadın diye cevabı basit çünkü
bir değeri döndürdükten sonraki kodlar çalışmaz "Ulaşılamayan Kod" denir bu duruma
Örnek Kullanım :
--------------------------------------------------------------------------------------------------------------------------------------------------
Değer yazdırma işlemi okuma işlemine göre daha kolaydır
Not : "Neden string yerine object kullandın?" diye sorucaksanız veya objecti bilmiyorsanız cevabı object kullanıcın tanımladığı değerdir, string bir değer yazarsanızda olur int bi değer yazarsanda onun değerini string olarak yazacaktır
Örnek Kullanım :
Bu yazıyı okuduğunuz için teşekkür ederim iyi kodlamalar
C# Kodlayan birçok kişinin merak ettiği araştırsa bile sadece kısaca ve tam olarak anlatılmamış kaynaklara ulaştığı .ini yazdırma ve okuma konusunu detaylı olarak size aktaracağım!
Arkadaşlar ilk önce yapmamız gerekn işlem kernel32'in içinde bulunduğu "WritePrivateProfileString" ve "GetPrivateProfileString" methodlarını kernel32'den çekmemiz gerek
bunun için DllImport metodunu kullanacağız.
Not : Lütfen Kopyala&Yapıştır yapmayınız yaptığınız taktirde öğrenemiyeceksiniz!
C#:
[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
public static extern bool WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName);
[DllImport("kernel32.dll")]
public static extern uint GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
Önemli Bilgi :
Peki bu önemli bilgilere göre nasıl .ini dosyasındaki değerleri okuyabiliriz?
Örnek okuma methodu :
C#:
public static string Read(string SectionName, string KeyName, string INIPath) // Not : INIPath'in değeri .ini dosyasının lokasyonu olucaktır
{
StringBuilder sb = new StringBuilder(5000); // Bir StringBuilder öğesi oluşturuyoruz ve kapasitesini 5000 Yapıyoruz
GetPrivateProfileString(SectionName, KeyName, "", sb, sb.Capacity, INIPath); // O öğenin değeri okuyoruz
string okunan_veri = sb.ToString(); // okunan değer oluşturduğumuz StringBuilder öğesi ile "okunan_veri"ye eşitliyoruz
sb.Clear(); // sonra oluşturduğumuz StringBuilder öğesini sıfırlıyoruz
return okunan_veri; // En son olarak okunan değeri döndürüyoruz
}
Not : Eğer ki bana soruyorsanız neden sb.ToString()'i döndürüp sb.Clear() yapmadın diye cevabı basit çünkü
bir değeri döndürdükten sonraki kodlar çalışmaz "Ulaşılamayan Kod" denir bu duruma
Örnek Kullanım :
C#:
string dönecekdeger = Read("Kategori", "Oge", ".ini dosyasının lokasyonu");
--------------------------------------------------------------------------------------------------------------------------------------------------
Değer yazdırma işlemi okuma işlemine göre daha kolaydır
C#:
public static void Write(string SectionName, string KeyName, object Value, string INIPath)
{
WritePrivateProfileString(SectionName, KeyName, Value.ToString(), INIPath);
}
Not : "Neden string yerine object kullandın?" diye sorucaksanız veya objecti bilmiyorsanız cevabı object kullanıcın tanımladığı değerdir, string bir değer yazarsanızda olur int bi değer yazarsanda onun değerini string olarak yazacaktır
Örnek Kullanım :
C#:
Write("Kategori, "Oge", "yazdırılmak istenen deger", ".ini dosyasının lokasyonu");
Bu yazıyı okuduğunuz için teşekkür ederim iyi kodlamalar
Post automatically merged:
Merhaba Arkadaşlar!
C# Kodlayan birçok kişinin merak ettiği araştırsa bile sadece kısaca ve tam olarak anlatılmamış kaynaklara ulaştığı .ini yazdırma ve okuma konusunu detaylı olarak size aktaracağım!
Arkadaşlar ilk önce yapmamız gereken işlem kernel32'in içinde bulunduğu "WritePrivateProfileString" ve "GetPrivateProfileString" methodlarını kernel32'den çekmemiz gerek
bunun için DllImport metodunu kullanacağız.
Not : Lütfen Kopyala&Yapıştır yapmayınız yaptığınız taktirde öğrenemiyeceksiniz!
C#:[DllImport("kernel32.dll", CharSet = CharSet.Unicode, SetLastError = true)] [return: MarshalAs(UnmanagedType.Bool)] public static extern bool WritePrivateProfileString(string lpAppName, string lpKeyName, string lpString, string lpFileName); [DllImport("kernel32.dll")] public static extern uint GetPrivateProfileString(string lpAppName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName);
Önemli Bilgi :
![]()
Peki bu önemli bilgilere göre nasıl .ini dosyasındaki değerleri okuyabiliriz?
Örnek okuma methodu :
C#:public static string Read(string SectionName, string KeyName, string INIPath) // Not : INIPath'in değeri .ini dosyasının lokasyonu olucaktır { StringBuilder sb = new StringBuilder(5000); // Bir StringBuilder öğesi oluşturuyoruz ve kapasitesini 5000 Yapıyoruz GetPrivateProfileString(SectionName, KeyName, "", sb, sb.Capacity, INIPath); // O öğenin değeri okuyoruz string okunan_veri = sb.ToString(); // okunan değer oluşturduğumuz StringBuilder öğesi ile "okunan_veri"ye eşitliyoruz sb.Clear(); // sonra oluşturduğumuz StringBuilder öğesini sıfırlıyoruz return okunan_veri; // En son olarak okunan değeri döndürüyoruz }
Not : Eğer ki bana soruyorsanız neden sb.ToString()'i döndürüp sb.Clear() yapmadın diye cevabı basit çünkü
bir değeri döndürdükten sonraki kodlar çalışmaz "Ulaşılamayan Kod" denir bu duruma
Örnek Kullanım :
C#:string dönecekdeger = Read("Kategori", "Oge", ".ini dosyasının lokasyonu");
--------------------------------------------------------------------------------------------------------------------------------------------------
Değer yazdırma işlemi okuma işlemine göre daha kolaydır
C#:public static void Write(string SectionName, string KeyName, object Value, string INIPath) { WritePrivateProfileString(SectionName, KeyName, Value.ToString(), INIPath); }
Not : "Neden string yerine object kullandın?" diye sorucaksanız veya objecti bilmiyorsanız cevabı object kullanıcın tanımladığı değerdir, string bir değer yazarsanızda olur int bi değer yazarsanda onun değerini string olarak yazacaktır
Örnek Kullanım :
C#:Write("Kategori", "Oge", "yazdırılmak istenen deger", ".ini dosyasının lokasyonu");
Bu yazıyı okuduğunuz için teşekkür ederim iyi kodlamalar![]()
Son düzenleme: