[.NET] 從固定寬度的文字檔讀取遇到中文問題

看板Visual_Basic作者 (沒看到)時間13年前 (2010/07/13 00:22), 編輯推噓2(207)
留言9則, 4人參與, 最新討論串1/1
請輸入專案類型:應用程式專案 使用 Microsoft Visual Basic 2008 Express Edition 參照 http://msdn.microsoft.com/zh-tw/library/zezabash%28v=VS.90%29.aspx (HOW TO:在 Visual Basic 中從固定寬度的文字檔讀取) 在處理一個文字檔(.txt)如下面所示, 在遇到中文時(1~10)會遇到一些問題 此檔在1~10 最多可放五個中文字, 或十個英文字. (在不足五個中文字時會在後面補空白(space), 每個中文補2個空白(space) 例如第一行, 會變成 陳小華^^^^ ("^" 表space) ) 如果設定取五格, 系統會抓到, 陳小華^^ 但後面的資料位置會受影響, 且在第三行會抓成Jason, 後面的資料位置也會受影響(名字沒抓完整). 123456789112345678 (行號) 陳小華 0003411; 天才王小明2003417; Jason Chen0003418; 想請問各位先進, 有辦法可以讓程式順利的抓到正確的文字嗎? 先謝謝了!!! -- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.43.188.65

07/13 11:02, , 1F
每次抓一行讀進字串,自己用ascw()逐個判斷字串中的文字
07/13 11:02, 1F

07/13 11:03, , 2F
是ASCII或中文,自己抓行內字數切分欄位
07/13 11:03, 2F

07/13 11:03, , 3F
這算是比較簡單直覺的方法…轉byte[]感覺上更麻煩…
07/13 11:03, 3F

07/13 11:36, , 4F
不能trim掉空白嗎
07/13 11:36, 4F

07/13 15:56, , 5F
聽起來他的問題是因為在unicode下中英文都算一個字
07/13 15:56, 5F

07/13 15:56, , 6F
所以照固定寬度切根本不可靠,空白還小事哩
07/13 15:56, 6F

07/13 23:21, , 7F
嗯? 要不要考慮從後面抓?
07/13 23:21, 7F

07/13 23:22, , 8F
後面的截取完成後, 剩下的前面就用Trim試試吧
07/13 23:22, 8F

07/14 03:51, , 9F
謝謝.. 我再來試試看!! 謝謝!!
07/14 03:51, 9F
文章代碼(AID): #1CEq58WS (Visual_Basic)