我正在尝试使用VB.Net(最新)读取一组文件,这些文件使用扩展的特殊字符作为数据的分隔符,例如倒置字母大头钉(Unicode:U + 02D4)和Z与au在顶部“Ž”(Unicode:U + 017D),替换不应存在的某些字符(例如:),然后将数据重写回原始文件。
我遇到的问题是使用UTF8使用IO.File.ReadAllLines无法识别Ž字符。我需要在文件中出现该字符或者存在倒置字母大头钉,因为这些字符代表我正在解释的文件中的分隔符。提前感谢您的帮助!
编辑:另外,我没有报酬写这个程序。我是一名数据录入员工(仍然),我正努力让工作中的生活变得更轻松。但我希望尝试过渡到编程。
以下是我正在使用的一些代码:
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles RemoveDelimiters.Click
files = IO.Directory.GetFiles(recdirectory.Text)
If (IsNothing(files)) Then
MsgBox("Please select a directory before attempting to parse files!")
Else
For Each file As String In files
Dim extension As String = System.IO.Path.GetExtension(file)
If (extension <> ".exe" And extension <> ".bat" And extension <> ".txt" And extension <> ".0") Then
'Dim text As String = IO.File.ReadAllText(file)
Dim text As String = IO.File.ReadAllText(file, System.Text.Encoding.UTF8)
Dim stext
stext = Microsoft.VisualBasic.Left(text, 300)
text = text.Replace(":", "")
text = text.Replace("`", "")
text = text.Replace("P*!GS*IA*FDE*", "P*:!GS*IA*FDE*")
'For Atkore files
'MsgBox(stext)
'text = text.Replace(ChrW(65533), ChrW(724))
'text = text.Replace(ChrW(65533), ChrW(381))
If (text.IndexOf("?") > -1) Then
MsgBox("found ? in file: " & file)
End If
If (text.IndexOf("P*:!GS*IA*FDE*") < 0) Then
If (text.IndexOf("GS*IA*FDE*") > -1) Then
text = text.Insert(text.IndexOf("GS*IA*FDE*") - 1, ":")
End If
If (text.IndexOf("GS*IM*FDE*") > -1) Then
text = text.Insert(text.IndexOf("GS*IM*FDE*") - 1, ":")
End If
If (text.IndexOf("GS*IM*FDE*") < 0 And text.IndexOf("GS*IA*FDE*") < 0) Then
MsgBox("Header not found for file: " & vbCrLf & file)
End If
End If
IO.File.WriteAllText(file, text, System.Text.Encoding.UTF8)
End If
Next
MsgBox("The operation has been completed!")
End If
End Sub