Vamos a ver, sin saber lo que intentas hacer no se si podre ayudarte. Pero aqui te dejo dos ejemplos, puede que saques alguna cosa util de ellos:
En este ejemplo metemos en un stream una cabecera con el tamaño del archivo, y a continuacion el archivo.
Código Delphi
[-]
var
Stream: TMemoryStream;
Archivo: TFileStream;
Nombre: string;
Cabecera: String;
begin
Nombre:= 'd:\Prueba.jpg';
Stream:= TMemoryStream.Create;
try
Archivo:= TFileStream.Create(Nombre,fmOpenRead);
try
Cabecera:= IntToStr(Archivo.Size);
Stream.WriteBuffer(PChar(Cabecera)^,length(Cabecera)+1);
Stream.CopyFrom(Archivo,0);
Stream.SaveToFile('d:\Archivo.bin');
finally
Archivo.Free;
end;
finally
Stream.Free;
end;
end;
En este otro cargamos un archivo en un stream, extramemos el contenido de la cabecera y a continuacion copiamos el resto del stream en otro stream.
Código Delphi
[-]
var
Stream: TMemoryStream;
Archivo: TFileStream;
Cabecera: String;
Size: Integer;
begin
Stream:= TMemoryStream.Create;
try
Stream.LoadFromFile('d:\Archivo.bin');
Archivo:= TFileStream.Create('d:\Prueba.jpg',fmCreate);
try
Cabecera:= String(PChar(Stream.Memory));
ShowMessage(Cabecera);
Size:= StrLen(PChar(Stream.Memory))+1;
Stream.Seek(Size,soFromBeginning);
Archivo.CopyFrom(Stream,Stream.Size-Size)
finally
Archivo.Free;
end;
finally
Stream.Free;
end;
end;