2014-10-07 145 views
2

我有以下代码搜索ASCII控制字符DEC26(替代)。我需要删除它,但它无法找到它。这也是来自Notepad ++文本的图片。我曾尝试使用“打开文件名为二进制为#1”,但这会导致更多的问题。我如何删除Chr $(26)(SUB)?需要帮助从VB6字符串中删除控制字符

enter image description here

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         

回答

1

VB6如下DOS样式文件的阅读和在DOS这个名为SUB ASCII控制字符(按Ctrl + Z)used as an EOF (end of file) marker

这个循环,

做,直到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一起使用。

+1

嘿,这很好!谢谢! – JimDel 2014-10-08 19:58:57