TMemoryStream内存流中数据删除的问题(50分)

  • 主题发起人 主题发起人 Beyondbill
  • 开始时间 开始时间
B

Beyondbill

Unregistered / Unconfirmed
GUEST, unregistred user!
看了看网络上的应用大多数是对TMemoryStream使用常见的读和写操作,不知道有谁知道怎么对TMemoryStream内存流中数据删除,请指教
 
删除末尾一段数据 Size := size-xxx;<br>删除中间一段数据 把后面的移到前面 Size := size-xxx;<br><br>size=0 就啥也没有了
 
删除中间一段数据 把后面的移到前面 Size := size-xxx;<br>啥意思呀,不明白
 
界面上加个memo<br><br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br> &nbsp;ms:TMemoryStream;<br> &nbsp;s:string;<br>begin<br> &nbsp;ms:=TMemoryStream.create;<br> &nbsp;s:='1234567890qwertyuiop[]';<br><br> &nbsp;ms.Write(s[1],length(s));<br> &nbsp;memo1.Lines.Add(inttostr(ms.size));<br> &nbsp;s:='111111111111111111111111111111111111';<br> &nbsp;ms.Position := 0;<br> &nbsp;ms.Read(s[1],ms.Size);<br> &nbsp;setlength(s,ms.Size);<br> &nbsp;memo1.Lines.Add(s);<br> &nbsp;//末尾-5<br> &nbsp;ms.Size := ms.size-5;<br> &nbsp;memo1.Lines.Add(inttostr(ms.size));<br> &nbsp;ms.Position := 0;<br> &nbsp;ms.Read(s[1],ms.Size);<br> &nbsp;setlength(s,ms.Size);<br> &nbsp;memo1.Lines.Add(s);<br> &nbsp;//第3个字符开始-5<br> &nbsp;move(pchar(pchar(ms.memory)+7)^,pchar(pchar(ms.memory)+2)^,ms.Size-5);<br> &nbsp;ms.Size := ms.size-5;<br> &nbsp;memo1.Lines.Add(inttostr(ms.size));<br> &nbsp;ms.Position := 0;<br> &nbsp;ms.Read(s[1],ms.Size);<br> &nbsp;setlength(s,ms.Size);<br> &nbsp;memo1.Lines.Add(s);<br>end;
 
自已解决了,用个临时TMemoryStream做个中转,用CopyFrom就OK啦
 
接受答案了.
 
后退
顶部