我有一个包含线条和特殊字符的文本文件。我想替换那些。这是最好的方法吗?我觉得这不是最快捷的方式。
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
另外,我想总结已经改变的事情。谁可以帮助我?
答案 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