台灣最大程式設計社群網站
線上人數
550
 
會員總數:245973
討論主題:189551
歡迎您免費加入會員
討論區列表 >> VB.NET >> 急~!!!!文字檔的字串長度計算
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
急~!!!!文字檔的字串長度計算
價值 : 100 QP  點閱數:605 回應數:4
樓主

Wn5566
門外漢
0 1
8 1
發送站內信

我有一個文件檔,內容如下:
989d0073927 中文姓名1                A200857244 這是中文跟全形數字及半形數
989d0073927 中文姓名2                A200857244 這是中文跟全形數字及半形數
989d0073927 中文姓名2                A200857244 這是中文跟全形數字及半形數
989d0073927 中文姓名2                A200857244 這是中文跟全形數字及半形數

1~12格 是編號
13~33格 是名稱
...以此類推

每一行文字均代表一筆 record 每個 column 的組合,沒有用分隔的符號來區隔開每個 column 欄位,
唯一能利用的是每個 column 的固定資料長度,所以每行資料都是對齊的(因為資料長度一樣),
有個問題是,他的長度計算碰到了中文就亂掉了,一般 Data type 當然是以半形英數來計算長度的,
以 StreamReader.readLine 到的字串(中英mix),便無法以固定的資料長度來抓取欄位資料了,
因為他遇到了中文字只會當作是一個字元長度(實際上應該是2個字元才對),如此一來 column 就亂掉了。
有辦法直接抓固定的資料長度嗎? 就是1~12格 就是編號(不管裡面是中文英文或符號、全形or半形)


小妹搞了好久....請各位高手分享一下解決方式



搜尋相關Tags的文章: [ asp.net ] , [ vb ] , [ 抓字串 ] ,
本篇文章發表於2017-07-04 14:59
1樓
回應

小魚
檢舉此回應
請問你的重點是要計算字串長度,
還是要抓資料出來?
雖然沒有分隔符號,
不過不是有空格嗎?
(可能還有換行符號)
本篇文章回覆於2017-07-04 19:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
不錯的參考

Sdany
捐贈 VP 給 Sdany 檢舉此回應
將字串 轉為 byte 陣列 就可以
本篇文章回覆於2017-07-04 19:32
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

Always
檢舉此回應
試試
1.先用System.Text.Encoding.GetEncoding("big5")讀出byte陣列
2.用System.Text.Encoding.Convert轉成UTF-8
3.用換行字元切割字串後再用Substring取字串
本篇文章回覆於2017-07-04 20:25
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

Wn5566
檢舉此回應
回應小魚:
重點是要依照規格書給的欄位起訖抓資料,空格不能拿來當分隔阿,它也算在資料內容裡面
本篇文章回覆於2017-07-05 09:18
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.