Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.07.24;
Скачать: 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 вся ветка

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

Наверх




Память: 0.47 MB
Время: 0.017 c
14-78053
Alexsey Orlov
2003-07-09 21:15
2003.07.24
Помогите


3-77802
zep
2003-07-02 23:24
2003.07.24
работа с Alias


1-77897
vitall
2003-07-12 11:41
2003.07.24
Как сделать чтобы PopupMenu из TrayIcon раскрывалось


1-77979
Keith Flint
2003-07-11 11:20
2003.07.24
TListView


14-78143
Fay
2003-07-09 11:17
2003.07.24
Как проверить почтовый адрес?