テキストファイルから読み取る方法の例と、文字列を「パブリック」(静的または定数)にする方法の例を示すいくつかの投稿を見てきましたが、「関数」内で2つを組み合わせることができませんでしたそれは私にとって理にかなっています。
「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 行を超えることはおそらくないでしょう。
どこからでも名前でパス変数にアクセスでき、400行のコードなどを追加しない限り、最善、安全、最速、最も簡単な方法で問題ありません。
データを XML に保存する必要があると人々が言う多くの投稿を読みましたが、ファイルの読み取りと変数部分の取得はどちらの方法でもほとんど同じであるため、その部分はそれほど重要ではないと思います。それはさておき、誰か (エンド ユーザー) が XML を理解しなくても編集できるプレーンな txt ファイルを使用できるようにしたいと考えています。(もちろん、空白行のチェック、パスが存在するかなどの多くのチェックを意味します...その部分を実行しても問題ありません。最初にこの部分を機能させたいだけです)。
ReadAllLines を配列に使用するさまざまな方法について読んだことがありますが、新しい別の「クラス」ファイルを作成すると言う人もいます (これはまだよくわかりませんが、作業中です)。主に、これを行うための「安定した」方法を見つけたいと思っています。(ちなみに、プロジェクトは.Net4とLinqを使用しています)
ありがとう!!