網路城邦
上一篇 回創作列表 下一篇   字體:
[Excel VBA ]如何將TXT檔裡的中文字元去除 ?
2009/03/04 20:01:34瀏覽4431|回應0|推薦1

如何把 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

( 興趣嗜好電腦3C )
回應 推薦文章 列印 加入我的文摘
上一篇 回創作列表 下一篇

引用
引用網址:https://classic-blog.udn.com/article/trackback.jsp?uid=WayCheng&aid=2709285