Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Delphi: Общие вопросы > Inser in to TStream, how ? |
Автор: Jiro 05.09.15, 03:50 |
Допустим имеется Mem: TMemoryStream; и buf : array of Byte; Как вставить buf в Mem с определенной позиции, не перезапись а именно вставка? |
Автор: leo 05.09.15, 05:18 |
1) Увеличить размер стрима и переписать его хвост с заданной позиции со смещением на размер buf 2) Записать buf c заданной позиции <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> OldSize:=Mem.Size; Mem.Size:=OldSize + Length(buf); Mem.Position:=APos + Length(buf); Mem.WriteBuffer(pAnsiChar(Mem.Memory)[APos], OldSize-APos); Mem.Position:=APos; Mem.WriteBuffer(buf[0], Length(Buf)); |