2014-12-02 28 views
-1

通常我們會收到由固定字符長度分隔的.txt文件,但是這次我不得不使用打印用的.txt文件。該文件需要在MS Access中解析爲字段,以便我們可以在其他表中運行該文件。通常快速的LTRIM()後跟固定的字符長度工作正常,但似乎有這個文本文件中的「鬼」字符是拋出一些行而不是其他字符。我也嘗試過if isnumeric()來驗證第一行,但這也給出了意想不到的結果。問題在Access VBA中清理txt

我試過將文件轉換爲UTF-8來擺脫這些隱藏的字符,並且isnumeric()沒有被LTRIM()所捕獲的缺陷,但是這沒有奏效。我用編碼工具(Notepad ++)打開了文件來查看隱藏的字符,但是沒有出現任何內容。是否有另一種方法來清理數據文件,以便字符看起來與我通過記事本看到的完全一樣?

+0

首先,你需要知道_ghost_字符是什麼。在文本編輯器(如記事本++)中啓用查看隱藏字符以發現不可見字符是什麼。你也可以使用'Asc()'函數獲取一個字符的ascii代碼。 – cheezsteak 2014-12-02 15:47:13

+0

記事本++沒有顯示除CR和FR以外的任何新東西。但是,我確實找到了我將發佈的解決方案。 – 2014-12-02 16:04:13

回答

0

引用解決方案hereClean()函數與LTRIM()同時插入,解決了該問題。由於Access不具有相同的Clean()功能Excel中,一個不得不用下面的創建:

Public Function Clean(InString As String) As String 
'-- Returns only printable characters from InString 
    Dim x As Integer 
    For x = 1 To Len(InString) 
     If Asc(Mid(InString, x, 1)) > 31 And Asc(Mid(InString, x, 1)) < 127 Then 
     Clean = Clean & Mid(InString, x, 1) 
     End If 
    Next x 

End Function