2017-04-30 13 views
1

私はmultilangアプリケーションを作成しようとしていますが、ファイルから "配列"を読みたいと思っています。C#言語からファイルを読み取る方法

マイenglish.langは、次のようになります。

LOGIN_TITLE = Test login 
LOGIN_CREATE_ACC_LABEL = Create an account 
LOGIN_REMEMBER_ME_CHECKBOX = Remember Me 
LOGIN_AUTO_LOGIN = Auto Login 
LOGIN_STATUS_WELCOME = Welcome to Client 
LOGIN_STATUS_WRONG = Invalid username or password 
LOGIN_SING_IN_BUTTON = Sing In 

と私はのようななめらか探しています:私は行う方法についてideeaを持っていますが、最適ではない、私は考えてい

string = getLang("LOGIN_TITLE"); 

"LOGIN_TITLE"が入っている行まで一行ずつ読み込んでから "LOGIN_TITLE ="を空白に置き換え、残りは "Test Login"とする必要があります。

私は思います私のlangファイルが大きすぎるとパフォーマンスが低下します。

どうすればいいですか?

+0

を使用することになり、私はそのようななめらかが必要ですが、それは解像度のファイルを操作する方が簡単です –

答えて

1

私はそれが重複していない辞書

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.IO; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     const string FILENAME = @"c:\temp\test.txt"; 
     static void Main(string[] args) 
     { 
      Header header = new Header(FILENAME); 
     } 
    } 
    public class Header 
    { 
     Dictionary<string, string> dict = new Dictionary<string, string>(); 

     public Header(string filename) 
     { 
      StreamReader reader = new StreamReader(filename); 

      string inputLine = ""; 

      while ((inputLine = reader.ReadLine()) != null) 
      { 
       inputLine = inputLine.Trim(); 

       string[] inputArray = inputLine.Split(new char[] { '=' }).ToArray(); 
       dict.Add(inputArray[0].Trim(), inputArray[1].Trim()); 

      } 

     } 
    } 
} 
0

複数の言語のアプリケーションでリソースファイルを使用する最善の方法は、

このsite

を見て、すぐにチャゲ。テキストファイルで作業することは、あなたの時間が重要なものになるでしょう

+0

ファイルに対して、english.langのように、このリンクでは、資源のためによ私は仕事に移ります。ありがとうございます –

0

私はあなたが良いと思っていますNOTあなたのことをやってください。

ローカライゼーションは、エンドユーザーのアプリケーション開発で最も一般的な問題であり、あなたの質問がずっと前に解決されました。 、stackoverflowの上で別の答えをご覧ください。How to use localization in C#

フレドリックモルクは簡単にあなたのコード内で/使用リソースローカライズファイルを作成する方法について説明し、簡単な例を示します。

+0

これは私が探しているsmthです、私はリソースファイルに移動すると思います: - ?それはより扱いやすい –

関連する問題