TMemorystram 物件再一問?? |
尚未結案
|
nowitzki41
一般會員 發表:3 回覆:5 積分:1 註冊:2005-08-11 發送簡訊給我 |
|
gac
初階會員 發表:2 回覆:28 積分:26 註冊:2004-08-16 發送簡訊給我 |
Stream 顧名思義就是一串連續的資料流,
並無提供插入的 method,
如果真的要做插入的動作,
可以自己寫函式處理 .....
//pStream:TMemoryStream 物件的指標 //ulPos:欲插入的位置 //pcData:欲插入的資料 //ulDataLen:欲插入資料的長度 void __fastcall StreamInsert(TMemoryStream * pStream, unsigned long ulPos, char * pcData, unsigned long ulDataLen) { char * buf = new char[pStream->Size]; //暫存插入點之後的資料 unsigned long ulRestDataLen = pStream->Size - ulPos; pStream->Seek(ulPos, soFromBeginning); pStream->Read(buf, ulRestDataLen); //從插入點寫入欲插入的資料 pStream->Seek(ulPos, soFromBeginning); pStream->Write(pcData, ulDataLen); //寫回原先暫存的資料 pStream->Write(buf, ulRestDataLen); delete [] buf; }使用方法如下: __fastcall TForm1::TForm1(TComponent* Owner) : TForm(Owner) { TMemoryStream * pStream = new TMemoryStream(); pStream->Write("ABCDE", 5); StreamInsert(pStream, 2, "123", 3); //<--- 執行完 Stream 的內容則為 "AB123CDE" delete pStream; }---------------------- 我..........還很嫩!
------
我..........還很嫩! |
nowitzki41
一般會員 發表:3 回覆:5 積分:1 註冊:2005-08-11 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |