討論區快速選單
知識庫快速選單
討論區最近新進100則主題 網路投保旅行平安險 傑米的攝影旅遊筆記
[ 回上頁 ] [ 討論區發言規則 ]
如果將ascii 0字元加在字串後?
更改我的閱讀文章字型大小
作者 : aquastartw(水星)
[ 貼文 15 | 人氣 1813 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/3/15 下午 01:24:49
最近在寫讀取地圖檔的程式。 http://mapeditor.org/

他的地圖檔用gzip壓縮過後,再用base64編碼。現在已經可以把資料都讀出來了,但是有幾個地方是硬解,想要請教各位前輩有沒有較佳解。

1.我用zlibXtra來處理gzip的部分。但是他好像有個bug,就是解出來的資料,超過1930 bytes的時候會當機。不曉得有沒有人有類似的經驗?最後我是先將壓縮資料寫入檔案,再用裡面的zx_gzdecode_file解完後,才讀入記憶體。(鳥到爆)

2.承上,我在讀壓縮檔時,因為是二進位檔。而我要把它讀成字串。但是lingo他不能將ascii 0的字元接在字串後面,所以下面這樣寫是無效的:
    ch = fileObj.readChar()
    ret = ret & ch
結果我變成要這樣寫
    ch = fileObj.readChar()
    num = charToNum(ch)
    
    ret = ret & numToChar(num)
感覺非常地畫蛇添足。不知道有沒有更佳解?
作者 : toshi(Toshi)討論區板主 Director/Lingo優秀好手貼文超過200則
[ 貼文 319 | 人氣 2406 | 評價 770 | 評價/貼文 2.41 | 送出評價 2 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/3/19 下午 09:19:22
你好

亂猜一下

如果是這樣
ch = string(fileObj.readChar())
ret = ret & ch

>2.承上,我在讀壓縮檔時,因為是二進位檔。而我要把它讀成字串。但是lingo他不能將ascii 0的字元接在字串後面,所以下面這樣寫是無效的:
> ch = fileObj.readChar()
> ret = ret & ch
>結果我變成要這樣寫
> ch = fileObj.readChar()
> num = charToNum(ch)
>
> ret = ret & numToChar(num)
>感覺非常地畫蛇添足。不知道有沒有更佳解?
作者 : aquastartw(水星)
[ 貼文 15 | 人氣 1813 | 評價 0 | 評價/貼文 0 | 送出評價 1 次 ] 
[ 給個讚 ]  [ 給個讚 ]  [ 回應本文 ]  [ 發表新文 ]  [ 回上頁 ] [ 回討論區列表 ] [ 回知識入口 ]
2008/4/9 下午 02:02:58
>如果是這樣
>ch = string(fileObj.readChar())
>ret = ret & ch

感謝toshi的回應,你提供的方法應該是可以用的,不過現在我是用另一個方法。先讀進base64的字元串再轉換成二進位string,所以沒這個問題了。謝謝。 :D


 板主 : Toshi
 > Director/Lingo - 討論區
 - 最近熱門問答精華集
 - 全部歷史問答精華集
 - Director/Lingo - 知識庫
  ■ 全站最新Post列表
  ■ 我的文章收藏
  ■ 我最愛的作者
  ■ 全站文章收藏排行榜
  ■ 全站最愛作者排行榜
  ■  月熱門主題
  ■  季熱門主題
  ■  熱門主題Top 20
  ■  本區Post排行榜
  ■  本區評價排行榜
  ■  全站專家名人榜
  ■  全站Post排行榜
  ■  全站評價排行榜
  ■  全站人氣排行榜
 請輸入關鍵字 
  開始搜尋
 
Top 10
評價排行
Director/Lingo
1 Toshi 770 
2 DNA 390 
3 ahfun 300 
4 carey阿麒 240 
5 leviathan69 80 
6 b翔 60 
7 Allen 50 
8 Cedric 40 
9 smart 40 
10 JF 40 
Director/Lingo
  專家等級 評價  
  一代宗師 10000  
  曠世奇才 5000  
  頂尖高手 3000  
  卓越專家 1500  
  優秀好手 750  
Microsoft Internet Explorer 6.0. Screen 1024x768 pixel. High Color (16 bit).
2000-2018 程式設計俱樂部 http://www.programmer-club.com.tw/
0.015625