替换文本文件中的特殊字符。最好的方法吗?

时间:2016-07-11 12:38:46

标签: vb.net vb6

我有一个包含线条和特殊字符的文本文件。我想替换那些。这是最好的方法吗?我觉得这不是最快捷的方式。

Dim lOpenFile As Long
Dim sFileText As String
Dim sFileName As String

sFileName = "C:\test.txt"


lOpenFile = FreeFile
Open sFileName For Input As lOpenFile
sFileText = Input(LOF(lOpenFile), lOpenFile)
Close lOpenFile

sFileText = Replace(sFileText, " Ç ", " C ")
sFileText = Replace(sFileText, " ü ", " u ")
sFileText = Replace(sFileText, " é ", " e ")


lOpenFile = FreeFile
Open sFileName For Output As lOpenFile
Print #lOpenFile, sFileText
Close lOpenFile

另外,我想总结已经改变的事情。谁可以帮助我?

1 个答案:

答案 0 :(得分:3)

我猜你真正想要的是从字符串中删除所有diacretics,所以重音符号或变音符号。然后你可以使用这个方法,因为它使用Public Shared Function RemoveDiacritics(s As String) As String Dim normalizedString As String = s.Normalize(NormalizationForm.FormD) Dim stringBuilder As New StringBuilder() For Each c As Char In normalizedString If CharUnicodeInfo.GetUnicodeCategory(c) <> UnicodeCategory.NonSpacingMark Then stringBuilder.Append(c) End If Next Return stringBuilder.ToString() End Function

,因此也很有效
Imports System.Text

[记得将ü添加到代码文件的顶部]

但请注意,它会将u转换为ü(根据需要),这是不正确的。通常,您应该通过以下方式“翻译”德语变音符号:ue = äae = öoe = Dim text As String = File.ReadAllText(sFileName) Dim newText As String = RemoveDiacritics(text) File.WriteAllText(sFileName, newText) Related

你打电话给上面的方法f.e.这样:

this.form