Показать сообщение отдельно
  #1  
Старый 12.05.2014, 19:26
Virus191288 Virus191288 вне форума
Прохожий
 
Регистрация: 24.08.2009
Сообщения: 2
Репутация: 10
По умолчанию объединение TMemoryStream

Добрый день. Проблема следующая:
Хочу объединить 3 TMemoryStream, сохранить, загрузить и разделить.
Что я делаю
Гружу в стримы информацию из memo, затем объединяю и на этом моменте получаю кучу ошибок

вот то что сделал сейчас

Код:
private
    AStream, BStream, CStream,ResultStream: TMemoryStream;
    procedure CompressFiles(ResStream: TMemoryStream);     


procedure StringToStream(const AString: string; Stream: TMemoryStream);
begin
  Stream:=TMemoryStream.Create;
  Stream.Write(AString[1], Length(AString));
end;   

procedure TForm1.CompressStream(ResStream: TMemoryStream);
var   outfile: TMemoryStream;
  compr : TMemoryStream;
  i,l,b : Integer;
  s : String;
begin

    outFile := TMemoryStream.Create;
    try       { отмечаем количество файлов }
      l := 3;
      outfile.Write(l,SizeOf(l));


          s := 'AStream';
          l := Length(s);
          outfile.Write(l,SizeOf(l));
          outfile.Write(s[1],l);           { размер стрима }
          l := AStream.Size;
          outfile.Write(l,SizeOf(l));           {упаковываем файл и сохраняем во временный файл}
          outfile.LoadFromStream(AStream);
           // outfile.SaveToFile('mestream');


          AStream.Free;

//
    finally
      outfile.Free;
    end;         
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  StringToStream(memo1.Text, AStream);
  StringToStream(memo2.Text, BStream);
  StringToStream(memo3.Text, CStream);
  Button2.Enabled:=true;
  Button3.Enabled:=true;
end; 

procedure TForm1.Button2Click(Sender: TObject);
begin
  CompressStream(ResultStream);
end; 


Уже 3 раз начинаю писать этот код и все время натыкаюсь на проблемы, кто может подсказать что не так и как это можно сделать(и если не сложно помочь с исходником)?
Ответить с цитированием