Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.08.30;
Скачать: CL | DM;

Вниз

как соединить два потока   Найти похожие ветки 

 
Wind ©   (2009-06-30 17:52) [0]

Уважаемые мастера, подскажите как соединить два потока TMemoryStream в один?


 
MBo ©   (2009-06-30 18:09) [1]

А какие методы есть в справке по TStream?


 
Юрий Зотов ©   (2009-06-30 18:24) [2]

Точнее, в справке по TMemoryStream. Названия свойств и методов говорят сами за себя.


 
Wind ©   (2009-06-30 18:37) [3]

Наверное плохо ищу, но ни чего не нашел.


 
Юрий Зотов ©   (2009-06-30 18:39) [4]

> Wind ©   (30.06.09 18:37) [3]

Подсказка:

1. Создать 3-й стрим.
2. Установить его размер равным сумме размеров двух первых.
3. Скопировать данные из 1-го в 3-й.
4. Скопировать данные из 2-го в 3-й.


 
Джо ©   (2009-06-30 21:01) [5]

Str2.Seek (0,soFromEnd);
 Str1.SaveToStream(Str2);


 
Wind ©   (2009-07-01 14:43) [6]

У меня получилось так.

procedure TForm1.Button1Click(Sender: TObject);
var st,St1,st2: TStringStream;
begin
 st:=TStringStream.Create(Edit1.Text);
 st1:=TStringStream.Create(Edit2.Text);
 st2:=TStringStream.Create("");
 St2.CopyFrom(st,st.Size);
 St2.CopyFrom(st1,st.Size);
 St2.Position:=0;
 Memo1.Lines.LoadFromStream(St2);
 st.Free;
 st1.Free;
 st2.Free;
end;


Всем спасибо что откликнулись.


 
MBo ©   (2009-07-01 14:58) [7]

Это реальный код, решающий твою задачу, или просто пример?


 
Wind ©   (2009-07-01 15:05) [8]

Это  прощеный пример. Отражающий принцип.
На самом деле у меня добавляется текстовый заголовок к картинке сохраненной в потоке.


 
Ega23 ©   (2009-07-01 15:23) [9]

St2.CopyFrom(st1,st.Size);

Наверное имелось ввиду St2.CopyFrom(st1,st1.Size); ?


 
Wind ©   (2009-07-01 15:27) [10]


> St2.CopyFrom(st1,st1.Size)

Да именно так. Ссори опечатка вышла.


 
Ega23 ©   (2009-07-01 16:00) [11]

Ну и я бы посоветовал про try..finally не забывать.


 
Wind ©   (2009-07-01 16:32) [12]

Это всего лишь пример, что бы наступившие на такие же грабли как я могли сориентироваться. Я не претендую на то, что этот пример идеален. Но он работает. Если кто, напишет лучше, ради Бога буду только рад. И наверное не только  я.


 
Ega23 ©   (2009-07-01 16:41) [13]


> Но он работает.


Работает. Но в нём потенциальная утечка памяти.
var
 obj : TSomeObj;
begin
 ....
 obj := TSomeObj.Create;
 try
   .....
 finally
   obj.Free;
 end;
 .....
end;


 
Wind ©   (2009-07-01 16:46) [14]

приведите пример лучше, в чем проблема то ?


 
Palladin ©   (2009-07-01 17:49) [15]


> приведите пример лучше

уже привели


>  в чем проблема то ?

в тебе, с восприятием информации... что то типа: угадал все буквы, но не смог проитать слово



Страницы: 1 вся ветка

Текущий архив: 2009.08.30;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.015 c
2-1246427745
lewka
2009-07-01 09:55
2009.08.30
Отправка электроной почты


15-1246212338
vuk
2009-06-28 22:05
2009.08.30
Москва. Печать на цветном лазернике. Где?


3-1226507367
DOjD
2008-11-12 19:29
2009.08.30
Работа с ZQuery LOCAL


15-1246540232
Гость
2009-07-02 17:10
2009.08.30
Посоветуйте локальный чат для конторы


15-1245954371
Kerk
2009-06-25 22:26
2009.08.30
ICFP