Rehber C#'da .ini dosyası okuma / yazma

300319

Zettapat
İlk 5 Haneli Mesajınız!
Katılım
4 Aralık 2018
Mesajlar
21.763
Makaleler
63
Çözümler
478
Merhaba. C# da ayarları kaydetmenin tonlarca yöntemi var. Bugün sizlere *.ini dosyası ile ayarları nasıl kayıt edeceğinizi göstereğim.

Gerekli sistem modülleri;
C#:
using System;
using System.Text;
using System.Runtime.InteropServices;

Öncelikle ayarları nereye kaydedeceğini belirtiyoruz.

Bu kod programın *.exe dosyasının olduğu dizin içinde ayarlar.ini dosyasına kaydedileceğini belirtiyor.
Not: ayarlar.ini dosyası olmasa bile otomatik olarak oluşturulacak.
C#:
 string save_path = Application.StartupPath + @"\ayarlar.ini";

Bu gördüğünüz kod kernel32.dll adlı sistem kütüphanesini kullanır. İni dosyasını yazma ve okumak için kernel32.dll içinde bulunan WritePrivateProfileString ve GetPrivateProfileString modüllerini kullanacağız.
C#:
public class SettingINI{
 [DllImport("kernel32.dll")]
 private static extern long WritePrivateProfileString(string section, string key, string val, string filePath);
 [DllImport("kernel32.dll")]
 private static extern long GetPrivateProfileString(string section, string key, string def, StringBuilder retVal, int size, string filePath);
 public SettingINI(string file_path) { save_file_path = file_path; }
 private string save_file_path = Application.StartupPath;
 private string default_save_process { get; set; }
 public string INIRead(string episode, string setting_name){
 default_save_process = default_save_process ?? string.Empty;
 StringBuilder str_builder = new StringBuilder(256);
 GetPrivateProfileString(episode, setting_name, default_save_process, str_builder, 255, save_file_path);
 return str_builder.ToString();
 }
 public long INIWrite(string episode, string setting_name, string value){
 return WritePrivateProfileString(episode, setting_name, value, save_file_path);
 }
}

Burada yer alan kod kernel32.dll dosyasını kullanarak oluşturduğumuz INIWrite string değeri ile veriyi yazıyoruz.

Bilgi;

Veri yazarken 3 parametre ister.

  • Ayarlar veri stünunun ismi.
  • Dil ise verinin değer tanımlayıcısı.
  • "Almanca" ise veri değeri.
C#:
SettingINI write_ini = new SettingINI(save_path);
write_ini.INIWrite("Ayarlar", "Dil", "Almanca");

Burada yer alan kod kernel32.dll dosyasını kullanarak oluşturduğumuz INIRead string değeri ile veriyi okuyoruz.

Bilgi;

Veri okurken 2 parametre ister.

  • Stünun ismi.
  • Stünun içindeki değer tanımlayıcısı.
Yukarı gördüğünüz üzere Ayarlar stünu içinde yer alan Dil değer tanımlayıcısını kullandık.

C#:
SettingINI read_ini = new SettingINI(save_path);
string get_data = read_ini.INIRead("Ayarlar", "Dil");
Console.WriteLine(get_data);

Değer ilgili alandan okunup ekrana yazılıyor.

Yardımcı olabildiysem ne mutlu bana. İyi çalışmalar
 
Son düzenleme:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için çerezleri kabul etmelisiniz. Daha Fazlasını Öğren.…