2017-03-03 11 views
0

したがって、テキストファイルには「こんにちは、私の名前は[0]で、[1]その数は増えています。プレースホルダでは、プレースホルダをユーザ入力に置き換えます。C#プレースホルダを使用してテキストファイルを実行し、プレースホルダをユーザ入力に置き換えます。

私は以前の質問を見てきましたが、ユーザー入力を効果的に統合するものは見つかりませんでした。

コードので、遠

string input = File.ReadAllText(openFileDialog.FileName); 
textBox1.Text = input; 
string result = Regex.Replace(input, "[0-9]", Console.ReadLine()); 
string result2 = result.Replace("[", string.Empty).Replace("]", string.Empty); 
textBox2.Text = result2; 

私が原因Console.ReadLine()部分でエラーに私のテキストファイルをロードしようとすると、それがクラッシュ。私は、各プレースホルダーを見つけてユーザーの入力を求めるために、テキストファイルのテキストを繰り返し処理するループが必要だと思っていますが、それをどのように動作させるかはわかりません。

+1

https://msdn.microsoft.com/en-us/library/system.string.format%28v=vs.110%29.aspx文字列形式を見ましたか? – Hogan

+0

あなたはファイルの内容を事前に知っていますか、それとも動的でしょうか? – dbraillon

答えて

0

私はそれは私がこの方法であなたを助けるべきだと思います

string input = File.ReadAllText(openFileDialog.FileName); 
//Hi, my name is {0} and I study at {1}... 
textBox1.Text = input; 
//Get your name and school here 
var name = ""; 
var school = "" 
textBox2.Text = string.Format(input, name, school); 
0

を行く方法を知ってみましょう:

public static string AdjustString(string str, List<string> userInput) 
{ 
    int i = 0; 
    foreach (var input in userInput) 
    { 
     var searchedSubstring = $"[{i}]"; 
     str = str.Replace(searchedSubstring, input); 
     i++; 
    } 
    return str; 
} 

static void UsgeExample() 
{ 
    var newString = AdjustString("[0][1][2]123[3]", 
     new List<string> {"A", "B", "C", "D"}); 
} 

NEWSTRING = "ABC123D"

また、あなたが辞書を試すことができますキー= "[0]"または "[1]"など、これらのキーの代わりに見たい値など。

関連する問題