2016-03-25 37 views
2

.txt dosyalarını yapılandırma dosyaları olarak kullanan uygulama buldum.Txt dosyası yapılandırma dosyası olarak

Dosyalar

[[plugin.save]] = [[Kaydet]]

nasıl C# bunu kullanırım benziyor?

Dosyamı [] olarak yapılandırmada kullanabilmek için uygulamayı nasıl uygulayabilirim?

+0

Muhtemelen uygulamanızın başlangıcında bir çeşit yapılandırma sınıfı oluşturun, regex ile ayrıştırma yaparak doldurun. Sonra ihtiyacınız olan yere erişebilir hale getirin (muhtemelen bazı statik sınıfları kullanarak) – Glubus

+0

regex ifadesi ile nasıl okurum? –

+0

Google'da regex'e bakın, üzerinde tonlarca eğitici var. Ardından, web'i regex'i kullanarak dosyalardan nasıl ayrıştırılacağına bakın ve işiniz bitti! – Glubus

cevap

4

Düzenli bir dosya olarak okumak zorundasınız. Okuma değerleri saklamak için Sözlük kullanın. örnek kod:

 Dictionary<string, string> configuration = new Dictionary<string, string>(); 

     Regex r = new Regex(@"\[\[(\w+)\]\]=\[\[(\w+)\]\]"); 

     string[] configArray = {"[[param1]]=[[Value1]]", "[[param2]]=[[Value2]]"};// File.ReadAllLines("some.txt"); 

     foreach (string config in configArray) 
     { 
      Match m = r.Match(config); 
      configuration.Add(m.Groups[1].Value, m.Groups[2].Value); 
     } 

olası null değerleri denetlemek için lütfen unutmayın. Ayrıca, yapılandırma değerleri örneğin boşluklar içerebiliyorsa, normal ifadenin farklı olması gerektiğini unutmayın.

var config = File.ReadAllLines(FileLocation) 

Sonra yanı normal ifadeler kullanabilirsiniz Olabilir

String.Split() 

ile ayrıştırmak:

+0

özür dilerim? Ben düzenli dosya okuma kullanıyorum ama kullanmak için Diktatör'ü nasıl kullanırım? static Sözlük Dil = yeni Sözlük (); (StreamReader sr = yeni StreamReader (@ ". \" + Langua)) { dize satırı; ((line = sr.ReadLine())! = Null) –

+0

benim için çalıştı, önerisi için –

4

Sadece kullanın.

+0

ty ty ama yine de regex'i daha kolay regex'i nasıl kolayca kullanacağımı biliyorum ama kullanmayı düşünmüyorum regex. Bu yüzden birisi başka bir yol biliyor mu soruyorum –

+2

Regex açıkça overkill, '=' karakteri üzerinde çizgiler bölme en pratik yol gibi görünüyor – Sidewinder94

İlgili konular