我有以下代码搜索ASCII控制字符DEC26(替代)。我需要删除它,但它无法找到它。这也是来自Notepad ++文本的图片。我尝试使用"打开文件名为二进制#1"但这会导致更多问题。我怎样才能删除那个Chr $(26)(SUB)?
Open fileName For Input As #1
Do Until EOF(1)
Line Input #1, LineOfText$
Alltext$ = Alltext$ & LineOfText$
Loop
Alltext$ = Replace$(Alltext$, Chr$(26), "")
Close #1
答案 0 :(得分:1)
VB6遵循DOS样式文件读取和DOS中名为SUB(Ctrl + Z)used as an EOF (end of file) marker的ASCII控制字符。
这个循环,
直到EOF(1)
实际上在遇到SUB时停止读取也知道为Chr(26)。 您应该将文件读取为二进制文件或使用FileSystemObject。
此代码应该有效:
Dim AllText As String
Set fs = CreateObject("Scripting.FileSystemObject")
Set myFile = fs.OpenTextFile(FileName, 1, False)
AllText = myFile.ReadAll()
myFile.Close
AllText = Replace$(AllText$, Chr$(26), "")
如果将Windows脚本宿主对象模型引用添加到项目中,还可以使用IDE自动完成并使用常量,如ForReading:
Dim fs As New FileSystemObject
Dim myFile As TextStream
Set myFile = fs.OpenTextFile(FileName, ForReading, False)
而不是CreateObject。如果删除类型定义和美元,第一个代码也应该与VBScript一起使用。