hola que tal........ les cuento que me fue:
construí un registro con los tamaños de los archivos:
Código Delphi
[-]
type
tamanio_mp3texto = packed record
tam_mp3:integer;
tam_texto:integer;
end;
y el procedimiento guardar:
Código Delphi
[-]
procedure guardar(amp3,atexto,acompuesto:string);
var
mp3,texto,compuesto:TFileStream;
tamanios:tamanio_mp3texto;
begin
mp3:=TFileStream.Create(amp3,fmOpenRead);
texto:=TFileStream.Create(atexto,fmOpenRead);
compuesto:=TFileStream.Create(acompuesto,fmCreate);
compuesto.CopyFrom(mp3,mp3.Size);
compuesto.CopyFrom(texto,texto.Size);
tamanios.tam_mp3:=mp3.Size;
tamanios.tam_texto:=texto.Size;
compuesto.WriteBuffer(tamanios,SizeOf(tamanios));
compuesto.Free;
mp3.Free;
texto.Free;
end;
Ahora para recuperar el archivo compuesto y "copiar" la parte del archivo mp3 hago lo siguiente:
Código Delphi
[-]
procedure abrir(acompuesto:string);
var
compuesto,mp3,texto:TFileStream;
tamanio:tamanio_mp3texto;
cont:PChar;
begin
compuesto:=TFileStream.Create(acompuesto,fmOpenRead);
mp3:=TFileStream.Create('c:\prueba.mp3',fmCreate);
compuesto.Position:=compuesto.Size-8;
compuesto.Read(tamanio,sizeof(tamanio));
compuesto.Position:=0;
while (compuesto.Position<=tamanio.tam_mp3) do
begin
compuesto.Read(cont,sizeof(cont));
mp3.Write(cont,sizeof(cont));
compuesto.Position:=compuesto.Position+1;
end;
mp3.Free;
compuesto.Free;
end
El problema es que no copia realmente el archivo como debería puesto que al tratar de abrirlo no reproduce y el tamaño del archivo no es el correcto.
Alguna sugerencia............
Saludos