Форум: "Основная";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];
ВнизМожно ли добавить строку в поток Найти похожие ветки
← →
Cut'gun © (2006-03-02 11:13) [0]Здраствуйте!
У меня следующий вопрос можно ли после того как мы присвоили потоку TMemoryStream что-либо дописать несколько символов в начале потока. Попробовал метод Write, но он кажется заменяет то что уже записано. Есть подозрение что можно попробовать по ссылке или использовать SendMessage с соответсвенными флагами, но я в этом пока не силён =(. Если возможно ответ снабдите каим нибудь примером кода. Заранее спасибо.
← →
TUser © (2006-03-02 11:55) [1]Не тестировал
procedure Insert (Str: TStream; Position: integer;
const Buffer; Count: integer);
var b: array of byte;
n: integer;
begin
n := Str.Size - Position;
Str.Size := Str.Size + Count;
SetLength (b, n);
Str.Position := Position;
Str.ReadBuffer (b[0], n);
Str.Position := Position;
Str.WriteBuffer (Buffer, Count);
Str.WriteBuffer (b, n);
SetLength (b, 0);
end;
← →
MBo © (2006-03-02 12:38) [2]> дописать несколько символов в начале потока.
нельзя. Только с использованием доп. потока или временного буфера.
← →
Гаврила © (2006-03-02 12:56) [3]
> MBo ©
Функция move нормально отработает и при частичном совпадении буферов
← →
Cut'gun © (2006-03-02 13:02) [4]2MBo
> с использованием доп. потока или временного буфера.
Т.е. я так понял есть способ склеить два потока?
Можно пример кода?
← →
MBo © (2006-03-02 13:11) [5]>Гаврила © (02.03.06 12:56) [3]
Да, тоже вариант.
>Т.е. я так понял есть способ склеить два потока?
>Можно пример кода?
см. метод TStream.CopyFrom
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.032 c