iT邦幫忙

0

Excel VBA 讀寫檔案 使用While EOF(檔案) Get舊檔 Put新檔 如何避免 多出最後一段 00 00 00 00 資料?

  • 分享至 

  • xImage

使用Excel VBA 處裡文字檔,想轉成UTF-8 no BOM (原本是 有BOM 用程式 Seek從 #4 開始讀取 存成新檔案

但程式 如下
While Not EOF(舊檔案)
Get #讀舊檔, , fileByte
Put #寫入新檔, , fileByte
Wend
觀察新檔案 已經到最後了 程式仍會跳到上面檢查 EOF 結果就會多一段(HEX) 00 00 00 00

請問有什麼解法嗎?

<說明>
我的程式 已經有先處理 將原本的BIG-5 轉成UTF-8 ,才發現 是UTF-8 BOM 格式 目前是卡在轉乘 UTF-8 without BOM 處理不好

  1. 有辦法 excel vba 生成文字檔 與處理(增加) 直接存成UTF-8 without BOM?
  2. 還是 有辦法直接刪除檔案的最欠面 3個 byte ? ---->即可轉變UTF-8 =>UTF-8 without BOM
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

1
海綿寶寶
iT邦大神 1 級 ‧ 2021-03-26 12:13:37
最佳解答

有辦法直接刪除檔案的最欠面 3個 byte ?

Google 這個移除 BOM 的 VBA 程式碼
參考看看能不能用

另外
GET, PUT 好像不是文字檔用的/images/emoticon/emoticon19.gif

achan iT邦研究生 4 級 ‧ 2021-03-26 13:08:48 檢舉

謝謝 大神回答 ~ 改用這個程式 處理好了

原先是參考下面文章 才會有我提到到的問題
[http://www.office-cn.net/tw/access-function/149.mhtml]

我要發表回答

立即登入回答