Я видел несколько сообщений, дающих примеры того, как читать из текстовых файлов, и примеры того, как создать строку «public» (static или const), но я не был способный объединить два внутри «функции» таким образом, который имеет смысл для меня.C# чтение переменных в статическую строку из текстового файла
У меня есть текстовый файл под названием «MyConfig.txt». В этом случае у меня есть 2 строки.
MyPathOne=C:\TestOne
MyPathTwo=C:\TestTwo
Я хочу, чтобы иметь возможность прочитать этот файл, когда я начинаю форму, делая как MyPathOne и MyPathTwo доступны из любой точки внутри формы, используя что-то вроде этого:
ReadConfig("MyConfig.txt");
так, как я пытаясь сделать это сейчас, что не работает, это:
public voice ReadConfig(string txtFile)
{
using (StreamReader sr = new StreamResder(txtFile))
{
string line;
while ((line = sr.ReadLine()) !=null)
{
var dict = File.ReadAllLines(txtFile)
.Select(l => l.Split(new[] { '=' }))
.ToDictionary(s => s[0].Trim(), s => s[1].Trim());
}
public const string MyPath1 = dic["MyPathOne"];
public const string MyPath2 = dic["MyPathTwo"];
}
}
файл TXT, вероятно, никогда не вырастет более чем 5 или 6 строк, и я не застрял на использовании StreamReader или словаря.
Пока я могу получить доступ к переменным пути по имени из любого места, и он не добавляет, как 400 строк кода или что-то в этом роде, тогда я в порядке с тем, что было бы лучше, безопаснее, быстрее и проще.
Я прочитал много сообщений, где люди говорят, что данные должны храниться в XML, но я считаю, что эта часть действительно не имеет большого значения, потому что чтение файла и получение части переменных будет практически одинаковым в любом случае. В остальном я предпочел бы использовать простой текстовый файл, который может редактировать кто-то (конечный пользователь), не понимая XML. (что означает, конечно, много проверок пустых строк, существует ли путь и т. д. ... Я в порядке с этой частью, просто хочу, чтобы эта часть работала в первую очередь).
Я читал о различных способах использования ReadAllLines в массиве, а некоторые говорят о создании нового отдельного «класса» файла (которого я пока не понимаю ... но работаю над ним). В основном я хочу найти «стабильный» способ сделать это. (проект используется .Net4 и Linq кстати)
Спасибо!
Возможно ли, что у вас есть класс и массив или список, который содержит строки из текстового файла. вы можете создать одноэлементный объект, доступный везде. и когда вы создаете экземпляр объекта singleton, прочитайте файл. - http://msdn.microsoft.com/en-us/library/ff650316.aspx – dekdev
Что не работает с вашим текущим кодом? –