線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1422
推到 Plurk!
推到 Facebook!

關於TMemoryStream問題............

尚未結案
nowitzki41
一般會員


發表:3
回覆:5
積分:1
註冊:2005-08-11

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-08-26 16:33:41 IP:220.132.xxx.xxx 未訂閱
最近想用用TMemoryStream來修改資料!! 爬了些以前的文章,有了些概念,不過自己卻老是不成功,所以想請各位先賢們給些指導!! 我的應用是利用TMemoryStream來讀一串字串進入buf, 然後插入些字元後, 再out出一個檔案!! 例如: 讀進{0011000A8190869136280008AA0D6C385B8F96FB6A5F000D000A},然後再每個字元間插入一空白字元(0x00)使其成為:: {0 0 1 1 0 0 0 A 8 1 9 0 8 6 9 1 3 6 2 8 0 0 0 8 A A 0 D 6 C 3 8 5 B 8 F 9 6 F B 6 A 5 F 0 0 0 D 0 0 0 A},或許我的指標觀念太過薄弱,每次out出的檔案都跟我預期的相差10萬8千里,我的想法是先用read將字串讀進buffer, 然後用for迴圈 write空白字元(0x00)去修改buffer內的資料,最後再savetofile!!........但是輸出的檔案跟我預期的就是會差很多!!請各位先賢們指教.....thanks very much!!
RedSnow
版主


發表:79
回覆:1322
積分:845
註冊:2003-12-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-08-27 09:32:43 IP:59.115.xxx.xxx 未訂閱
nowitzki41 您好:    "空白" 字元的 ASCII 碼不是 0x00 而是 0x20,改過來試試看,如果仍有問題的話,請將相關程式碼貼上來,以方便討論。 7 天天敲鍵盤 v 時時按滑鼠 8
Nowitzki_41
一般會員


發表:1
回覆:2
積分:0
註冊:2005-03-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-27 17:03:50 IP:219.68.xxx.xxx 未訂閱
謝謝大大的回覆, 或許我的措詞容易引起誤會,我要插入的值就是0x00...或許我不該稱它空白字元,{0011000A8190869136280008AA0D6C385B8F96FB6A5F000D000A}是我要匯給其它程式的stream,可是他只接受{0.0.1.1.0.0.0.A.8.1.9.0.8.6.9.1.3.6.2.8.0.0.0.8.A.A.0.D.6.C.3.8.5.B.8.F.9.6.F.B.6.A.5.F.0.0.0.D.0.0.0.A},我用UltraEdit32開的時候,'.'就是0x00或許我該稱它間隔字元吧!! 程式被我改的亂七八糟,也不知道要貼哪一段上去,我把它整理一下在po上去好了,不管如何還是謝謝你的回應!!
nowitzki41
一般會員


發表:3
回覆:5
積分:1
註冊:2005-08-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-08-29 13:51:28 IP:220.132.xxx.xxx 未訂閱
問題解決了,是我TMemoryStream的位置(Position)標記沒有調整好,可是我還是有點疑惑,如果我能利用Position就能控制要讀或寫的位置,為何TMemoryStream還要提供seek(好像是另一種控制位置的方法)呢??
malanlk
尊榮會員


發表:20
回覆:694
積分:577
註冊:2004-04-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-08-29 14:56:03 IP:203.69.xxx.xxx 未訂閱
Seek(Offset: Longint; Origin: Word) Origin 參數可以是 soFromBeginning 由最前面開始 第 Offset 個 soFromCurrent 由目前位置開始 第 Offset 個 soFromEnd Offset 由最後位置 往回 Offset 個 (必須是負值) 遠比 Position 靈活多了, 但是一般使用時, 指定 Position 也就足夠了. 發表人 - malanlk 於 2005/08/29 18:55:53
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-08-29 19:04:14 IP:210.68.xxx.xxx 未訂閱
nowitzki41&Nowitzki_41您好: 請注意 
引言: 在加入討論區的同意條款頁面 (http://delphi.ktop.com.tw/ktop21.htm) 上有下列的聲明: 7、本站禁止同人申請多個會員帳號並自己對自己給分的情況,一經查明屬實直接刪除重複帳號!
nowitzki41
一般會員


發表:3
回覆:5
積分:1
註冊:2005-08-11

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-08-30 09:20:56 IP:220.132.xxx.xxx 未訂閱
副站長大人請明鑑,我是nowitzki41,我跟nowitzki418的關係就好像劉德華與劉德凱的關係一樣(就只是名字像而已!!),當初會取這個暱稱純粹是因為欣賞nba達拉斯小牛隊的nowitzki,至於nowitzki418兄,我想應該是另一個喜歡nowitzki的人罷了吧!!
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-08-30 10:41:23 IP:210.68.xxx.xxx 未訂閱
引言: 我是nowitzki41,我跟nowitzki418的關係就好像劉德華與劉德凱的關係一樣
疑? 發問者是nowitzki41... 而Nowitzki_41卻接著說:[謝謝大大的回覆, 或許我的措詞容易引起誤會,我要插入的值就是]... 跟nowitzki418沒有關係吧?
nowitzki41
一般會員


發表:3
回覆:5
積分:1
註冊:2005-08-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-08-30 16:07:45 IP:220.132.xxx.xxx 未訂閱
真是太烏龍了,我把nowitzki41&看成nowitzki418了!!至於nowitzki41跟Nowitzki_41.....都是我耶!!一個是 >
taishyang
站務副站長


發表:377
回覆:5490
積分:4563
註冊:2002-10-08

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-08-30 16:39:46 IP:210.68.xxx.xxx 未訂閱
沒那麼嚴重,不要發生自我給分的現象即可
系統時間:2024-11-23 22:36:53
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!