Модераторы: Snowy, MetalFan, bems, Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблемы с потоками 
V
    Опции темы
AndreyIQ
Дата 2.9.2011, 08:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 5.2.2007

Репутация: 1
Всего: 8



Возникла проблема с потоками. Если сохраняю через TFileStream то проблем нет, а если через TMemoryStream, то файл почему-то обрезается.
Код

procedure TFbrmCommandFile.SaveToFile(AFileName: string);
var
  i: integer;
//  FileStream: TFileStream;
  MemoryStream: TMemoryStream;
  Writer: TWriter;
begin
//  FileStream := TFileStream.Create(AFileName, fmCreate);
  MemoryStream:= TMemoryStream.Create;
  Writer:= TWriter.Create(MemoryStream, 4096);
  try
    Writer.WriteListBegin;
    Writer.WriteString((Commands.Text));//Crypt
    for i := 0 to Length(FScripts) - 1 do
      Writer.WriteString((FScripts[i].Text));//Crypt
    Writer.WriteListEnd;
    MemoryStream.Seek(0, soFromBeginning);
    MemoryStream.SaveToFile(AFileName);
    sleepex(1000, TRUE);
  finally
    FreeAndNil(Writer);
//    FreeAndNil(FileStream);
    FreeAndNil(MemoryStream);
  end;
end;

Что я не так делаю
PM MAIL   Вверх
AndreyIQ
Дата 2.9.2011, 09:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 185
Регистрация: 5.2.2007

Репутация: 1
Всего: 8



Уже сам разобраля. Вдруг кому понадобится.
Оказалось, что TWriter не пишет на прямую в поток, а сначала сохраняет данные в буфер и только после заполнения буфера записывает его в поток. Для принудительной записи буфера надо вызывать метод FlushBuffer.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Для новичков"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0388 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.