使用用户输入更改所有相同的字符串

时间:2017-03-27 12:29:22

标签: vb.net

我正在制作游戏 The Sims 3 的注册文件创建者,原来是俄语版。

我想要做的是将所有相关参数更改为用户选择的参数。

reg file有多个“RU”字符串,“ru-RU”和执行路径相同(C:\ Users \ Lollo \ Desktop \ Nuova cartella \ The Sims 3.Gold Edition.v 21.0.150 +商店\)。

这是我用来替换字符串的代码:

Dim replacetext As String = TextBox1.Text

If RichTextBox1.SelectedText.Length <= 0 Then

    Exit Sub

End If

Dim s As String = "RU"

Dim nextPos As Integer

nextPos = RichTextBox1.Text.IndexOf(RichTextBox1.SelectedText)

While ((nextPos < RichTextBox1.Text.Length) And (nextPos >= 0))

    RichTextBox1.SelectionStart = nextPos

    RichTextBox1.SelectionLength = s.Length

    RichTextBox1.Text = RichTextBox1.Text.Replace(s, replacetext)

    nextPos = RichTextBox1.Text.IndexOf(s, nextPos + 1)

End While

然而它无效。

这就是我的GUI呈现给用户的方式:

GUI

任何人都可以建议我做错了吗?

1 个答案:

答案 0 :(得分:0)

我宁愿建议使用string.replace并替换您的值,而不是按照接近它的方式进行操作。

看起来有点像这样:

TextBox1.Text = Textbox1.Text
.Replace("ru-RU",ComboBox2.Text)
.Replace("RU",ComboBox3.Text)

我没有所有细节,所以完全做到这一点很困难,但你似乎想要的方式可能有点长篇大论。

另一个建议是使用正则表达式并替换那种方式。

编辑:

忽略案例,风险略高。

TextBox1.Text = Textbox1.Text
.ToLower()
.Replace("ru-ru",ComboBox2.Text)
.Replace("ru",ComboBox3.Text)