TMemoryStream es una secuencia que almacena datos dentro de la memoria dinámica de un dispositivo.
TMemoryStream es un objeto o clase que desciende o hereda de la clase TStream, que se utiliza para poder leer y escribir datos en memoria.
En esta clase se agrega una propiedad llamada Memory, que es de tipo puntero que da acceso directo a la porción de memoria reservada por MemoryStream, entre otras propiedades y métodos para poder administrar un búfer de memoria dinámica.
Los flujos de memoria, en programación, son útiles como objetos intermedios que pueden contener cualquier tipo de información, y poder leerla o escribirla en cualquier otro medio de almacenamiento del dispositivo.
A su vez, proporciona un formato útil para comparar el contenido de las transmisiones o para manipular datos almacenados en un medio menos accesible.
Ejemplo de TMemoryStream
var
vMemoryStream: TMemoryStream;
...
procedure cargararchivoaMemoria;
begin
vMemoryStream := TMemoryStream.Create;
try
LoadFromFileToMem('X:\File.dat', vMemoryStream);
finally
memStream.Free;
end;
end;
procedure LoadFromFileToMem(const vFile: string; vMemoryStream: TMemoryStream);
var
vFileStream: TFileStream;
begin
vFileStream := TFileStream.Create(vFile, fmOpenRead);
try
vMemoryStream.CopyFrom(vFileStream);
finally
vFileStream.Free;
end;
end;
Este ejemplo de TMemoryStream es uno de los más sencillos de entender.
En primer lugar creamos una variable llamada vMemoryStream de tipo TMemoryStream en un ámbito global.
Luego le cargamos el archivo ‘X:\File.dat’ a través del procedimiento LoadFromFileToMem, el cual recibe dos parámetros, el primero es el nombre del archivo a cargar, y el segundo es el objeto de tipo TMemoryStream en el cual se cargará el archivo anterior.
A este ejemplo le podríamos agregar una comprobación para verificar si el archivo existe y no tener una exception si el mismo no se encuentra, pero para comenzar a practicar el uso de TMemoryStream basta con ser sencillo.