Вниз
Скачать: CL | DM;

Как сохранить сообщения TIdMessage.   Найти похожие ветки 

← →
Nesterovsky   (2003-05-18 09:49) [0]

Как можно сохранить несколько сообщений TIdMessage в одном потоке. Делаю так:
var
msgin: array of TIdMessage;
msgout:array of TIdMessage;
begin
... //тут заполняю массив msgin сообщениями
fs:= TFileStream.Create("c:\t.tt", fmCreate);
for i:= Low(msgsin) to High(msgsin) do
msgsin[i].SaveToStream(fs);
fs.Position:= 0;

for i:= Low(Folders[outbox].Msgs) to High(Folders[outbox].Msgs) do
begin
SetLength(msgout, Length(msgout) + 1);
msgout[High(msgout)]:= TIdMessage.Create(nil);
msgout[High(msgout)].Clear;
msgout[High(msgout)].LoadFromStream(fs);
end;
end;
//но как на зло, когда я читаю из того же потока несколько сообщений, то читается только первое и указатель потока ставится в конец :(( Хотя должен стать на разделителе


← →
Zelius ©   (2003-05-18 20:34) [1]

Тебе надо потрассировать Инди, они очень любят играть с потоками по своим правилам! Наверняка где-то в коде Инди стоит изменение позиции в потоке.


← →
Nesterovsky   (2003-05-18 21:58) [2]

А-а-а-а-а попроще ничего нет? у меня конечно был вариант еще в этот же стрим сохранять и позицию следующего сообщения, а при чтении восстанавлитьвать его на каждое сообщение, но уж очень это как то не красиво


← →
Nesterovsky   (2003-05-18 23:46) [3]

Похоже действительно ошибка в индевых компонентах. Позиция в стреаме сдвигается на размер буффера, а не на размер прочитанных данных. Ищется за полчаса фиксится за минуту. Кому интересно - пишите.


← →
Zelius ©   (2003-05-19 11:22) [4]

Таких мест прилично в Инди, чем она мне и не нравится, пришлось даже свой поток писать, что бы Инди не меняла размер файла как ей захочется.



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

Скачать: CL | DM;



Память: 0.45 MB
Время: 0.012 c
9-77708
BANick
2003-01-27 20:14
2003.07.24
Opengl. Помогите с прозрачностью


3-77772
Лора
2003-07-02 09:15
2003.07.24
Запрос в Access


14-78041
DelphiBeginner
2003-07-09 14:47
2003.07.24
GDB


1-77981
Zilog
2003-07-09 16:37
2003.07.24
свой класс для двухмерных диаграмм. Canvas - медленно.....


14-78044
Andryk
2003-07-09 15:24
2003.07.24
Что с отправкой сообщений?




   Наверх