11 Voto

Delphi/Lazarus: Escribir Stream a Stream

Pregunta de Invitado | 07/01/2024 a las 15:03

Me gustaría escribir el contenido de una Stream en otra Stream.

Por ejemplo, el contenido de algún TFileStream en un TMemoryStream arbitrario.

¿Cómo puedo conseguir esto?

ResponderPositivoNegativo
2Mejor Respuesta2 Votos

Suponiendo que tiene dos Streams, StreamA y StreamB, puede copiar el contenido de StreamB a StreamA usando el siguiente código:

StreamB.Position := 0;
StreamA.CopyFrom(StreamB, StreamB.Size);

Es importante establecer primero la posición en 0. De lo contrario (si la posición actual de la Stream no es 0) no se copiará desde el principio de la Stream (excepto, por supuesto, que solo desee copiar una parte de la secuencia que comienza en algún lugar en el medio).

El segundo parámetro de CopyFrom es la longitud que se debe copiar. Al pasar "StreamB.Size", se copia la longitud completa de la secuencia, con valores más pequeños que el tamaño de la secuencia, es posible copiar solo una parte de la Stream.
07/01/2024 a las 19:47

ResponderPositivo Negativo
Responder

Temas Relacionados

Aviso Importante

Por favor tenga en cuenta: Las contribuciones publicadas en askingbox.com son contribuciones de los usuarios y no deben reemplazar el asesoramiento profesional. No son verificados por independientes y no reflejan necesariamente la opinión de askingbox.com. Aprende más.

Participar

Haga su propia pregunta o escriba su propio artículo en askingbox.com. He aquí cómo.