2017-03-03 67 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]」等等,你想看到的值而不是這些鍵。