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

AnsiString轉Byte並以stream存檔

缺席
nlj859
資深會員


發表:139
回覆:375
積分:322
註冊:2004-03-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2010-12-07 18:21:33 IP:220.130.xxx.xxx 訂閱
我有一String "800540040002", 它就是我的6 bytes資料內容(80 05 40 04 00 02).
我要將這資料插入某個資料段裡,但是底下的寫法似乎不正確.
是否可指導該怎麼修改才好, 謝謝.


[code cpp]
AnsiString newFile=fn ".Merged";
TMemoryStream *Stream=new TMemoryStream;
Stream->LoadFromFile(fn); //讀舊檔
Stream->Position=0;

TMemoryStream *fStream=new TMemoryStream;
fStream->CopyFrom(Stream,StopDieCoord);
char *p=ModifiedData.c_str();
fStream->Write(p,sizeof(p)); //插入, sizeof(p)=4?
Stream->Position=242;
fStream->CopyFrom(Stream,Total-Stream->Position);
fStream->SaveToFile(asFile);
delete fStream;

delete Stream;[/code]

編輯記錄
nlj859 重新編輯於 2010-12-07 03:22:55, 註解 無‧
nlj859 重新編輯於 2010-12-07 03:24:14, 註解 無‧
GrandRURU
站務副站長


發表:240
回覆:1680
積分:1874
註冊:2005-06-21

發送簡訊給我
#2 引用回覆 回覆 發表時間:2010-12-08 08:24:23 IP:203.75.xxx.xxx 未訂閱
1.從posistion = 242的位置填入後,後面的資料會直接清空

我只會用比較笨的方法:
2.可以把原本242~結尾的資料轉存到你的「fStream」裡
3.插入你要的ansistring to byte字元
4.把fstream填到stream的後面
編輯記錄
GrandRURU 重新編輯於 2010-12-07 17:25:01, 註解 無‧
系統時間:2024-04-20 20:59:33
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!