Главная страница
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.016 c
2-1246521017
belmol
2009-07-02 11:50
2009.08.30
CopyFiles отключить контроль ошибок


15-1245995836
Ega23
2009-06-26 09:57
2009.08.30
Веб-дизайнеры есть?


1-1212955915
andreil
2008-06-09 00:11
2009.08.30
Дельфийский интерфейс для Сишных прог


4-1213186653
A.L.E.X.A.N.D.E.R.
2008-06-11 16:17
2009.08.30
Отлов обращений апи-функций к процессу


15-1246568526
Kostafey
2009-07-03 01:02
2009.08.30
Наклепал пару заметок про EMaxima