2014-10-07 156 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