如何把 TXT 檔裡的中文字除掉? 我是用反向的思考, 把不是ASCII 字元的都濾掉, 更具體的說, 就是檢查TXT檔裡的每個字元, 若是 ASCII 字元, 就抄到新檔案去, 最後新檔案裡就會沒有中文字。底下這個副程式就是這樣的功用, 在程式裡可以這樣呼叫它:
Call NonAsciiFilter(原TXT檔, 新TXT檔)
請看程式碼:
Sub NonAsciiFilter(OrgFile As String, NewFile As String)
Dim Tin As String, Tout As String, Dic As String
Dim fs, f_org, f_new
Dic = 〝 abcdefghijklmnopqrstuvwxyz ABCDEFGHIJKLMNOPQRSTUVWXYZ`1234567890-=~!@#$%^&*()_+,./;'[]\<>?:{}|〞 & Chr(34)
'注意: Dic 字串第一個字元是空白, 不要刪掉它, Chr(34) 是 " 符號
' Dic 裡 z 與 A 之間不應空格。請將 全形的〝和〞改成半形。
Set fs = CreateObject("Scripting.FileSystemObject")
Set f_org = fs.OpenTextFile(OrgFile, 1, True, -2)
Set f_new = fs.CreateTextFile(NewFile, True)
While Not f_org.AtEndOfStream
Tout = ""
Tin = f_org.readline
For i = 1 To Len(Tin)
If InStrB(1, Dic, Mid(Tin, i, 1), 1) <> 0 And Mid(Tin, i, 1) <> " " Then
'InStrB() 函式會將全型和半型的空白字元視為相同, 所以要特別加以判斷
Tout = Tout & Mid(Tin, i, 1)
End If
Next i
f_new.writeline Tout
Wend
f_org.Close
f_new.Close
End Sub