2011-01-04 11 views
0

よしからの情報をつかんで、私はこのフォーマットで、その中にいくつかのデータのテキストファイルを持っている:私のプログラムでは文字列内の行を検索し、ライン

Info1-Info2 
Info3-Info4 
Info5-Info6 

、私ができるようにしたいと思います私が与える最初の情報に基づいて、行の内容を取得します。ですから、私が "Info3"を与えると、 "Info4"の値を取得して文字列に配置したいと考えています。

テキストファイルのテキストが既に文字列に格納されているため、必要な情報を取得できるように文字列を操作するだけです。

申し訳ありませんが、私はこれを悪い方法で説明しました。ありがとう!

答えて

5

代わりにIDictionaryを使用します。

ファイルから読み込むときは、辞書キーとして左の部分(「 - 」の前に)を置き、値として右の部分を入れます。

次に、あなただけのキーで値を取得できます。

辞書[「情報3は、」]「情報4」を返します。あなたには、いくつかの実際のコードが必要な場合は、私に教えてください

は...

EDIT

:追加のコード

namespace ConsoleApplication2 { 
    class Program { 
     static void Main(string[] args) { 
      string line; 
      //initialize Dictionary 

      var keyMatch = new Dictionary<string, string>(); 
      //opening the file 
      using (TextReader re = File.OpenText("Sample.txt")) { 
       //loop through lines 
       while ((line = re.ReadLine()) != null) { 
        keyMatch.Add(line.Substring(0, line.IndexOf("-")), line.Substring(line.IndexOf("-") + 1)); 
       } 
      } 

      var test = keyMatch["Info5"]; 
     } 
    } 
} 
+0

IDictionaryにファイルを読み込む方法はありますか? – Chiggins

+0

すばらしい答え。これは、辞書オブジェクトのテキストブックの使用例です。 – Flipster

+0

あなたのキーが一意であることを確認してください。または、辞書に挿入する前に、 "Contains"チェックを行う必要があります。私は例を単純に保つためにそれを加えなかった。 – turtlepick

0

私はあなたがこれをタグ付け気づいた "正規表現。"入力行(Info3など)に基づいてスイッチを行い、それに応じて出力行(Info4など)に何かが一致するように思えます。 ENTIREセクションをInfo4のものだけでなく一致させたい場合は、上記のような辞書を使用してください。

関連する問題