我會盡量讓這件事變得簡單。我在一家航運公司作業,如果客戶的訂單有任何問題,我們會向他們發送電子郵件。我最近制作了一個標準化這些電子郵件的 vb.net 程式。現在我正在重寫程式,以便可以從文本檔案中編輯模板。現在它們被硬編碼到程式本身中。
所以,這就是我想要做的
模板.txt ->Good afternoon %NAME% your order has shipped.
我希望程式打開這個文本檔案,將 %NAME% 更改為從文本框中輸入的變數 CustName,然后在 RichTextBox 中顯示更新的文本。但我不希望 template.txt 保存更改。
想知道你們這些好人是否可以幫助我解決這個問題。
非常感謝!
uj5u.com熱心網友回復:
第一個答案是正確的。您只需將模板文本存盤在檔案中。在你的文本檔案中使用這個:
下午好 {0},您的訂單已發貨。
然后你可以做這樣的事情:
Dim name = "someone"
Dim template = File.ReadAllText("TextFile1.txt")
RichTextBox1.Text = String.Format(template, name)
第一個引數String.Format是模板,包含編號的占位符。其余引數是替換這些占位符的值。這些引數中的第一個將替換模板中“{0}”的每個實體,第二個將替換“{1}”,依此類推。您需要確保您的編號占位符始終與您傳遞給的值的順序相匹配String.Format。
如果您不希望編輯該模板的人必須記住每個數字的含義,您可以撰寫自己的替換代碼。例如,您可以將其存盤在檔案中:
下午好 {name} 您的訂單已發貨。
然后這樣做:
Private Function FillTemplate(template As String, name As String) As String
Return template.Replace("{name}", name)
End Function
和這個:
Dim name = "someone"
Dim text = FillTemplate(File.ReadAllText("TextFile1.txt"), name)
RichTextBox1.Text = text
您需要為要插入的每個值添加引數和Replace呼叫FillTemplate,例如
Private Function FillTemplate(template As String,
name As String,
address As String) As String
Return template.Replace("{name}", name).
Replace("{address}", address)
End Function
uj5u.com熱心網友回復:
我認為您正在尋找的語法類似于
String.Format("Good afternoon {0} your order has shipped", name_variable)
如果你想改變兩條資訊,你可以使用
String.Format("Good afternoon {0} your order has {1}", name_variable, "shipped")
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/503737.html
