La clase TStream en Delphi

¿Qué es un Stream? ¿TStream?

Un stream es lo que su nombre sugiere: un "río de datos" que fluye. Una corriente tiene un principio, un fin, y siempre estás en algún punto entre estos dos puntos.

 

Usando los objetos TStream de Delphi puede leer o escribir en varios tipos de medios de almacenamiento, como archivos de disco, memoria dinámica, etc.

 

¿Qué datos puede contener un stream?

Un stream puede contener lo que quieras, en el orden que quieras. En el proyecto de ejemplo que acompaña a este artículo, los registros de tamaño fijo se utilizan con fines de simplicidad, pero puede escribir cualquier combinación de datos de tamaño variable en una secuencia. Recuerde, sin embargo, que usted es responsable de la casa. No hay forma de que Delphi pueda "recordar" qué tipo de datos están en un flujo, o en qué orden.

 

Streams vs. Arrays

Las arrays tienen la desventaja de tener un tamaño fijo que debe conocerse en el momento de la compilación. Vale, puedes usar arrays dinámicas.

 

Por otro lado, un flujo puede crecer hasta el tamaño de la memoria disponible, que es considerablemente grande en los sistemas actuales, sin necesidad de realizar tareas domésticas.

 

Un stream no puede ser indexado, como un array. Pero como verás abajo, "caminar" arriba y abajo de un stream es muy fácil.

 

Los streams pueden ser guardados/cargados en/desde archivos en una simple operación.

Sabores de los streams

TStream es el tipo de clase base (abstracta) para los objetos streaming. Ser abstracto significa que TStream nunca debe ser usado como tal, sino sólo en sus formas descendientes. Para la transmisión de cualquier tipo de información, elija una clase descendiente de acuerdo con los datos específicos y las necesidades de almacenamiento. Por ejemplo:

 

  • TFileStream (para trabajar con archivos)
  • TMemoryStream (para trabajar con un búfer de memoria)
  • TStringStream (para manipular cadenas en memoria)
  • TBlobStream (para trabajar con campos BLOB)
  • TWinSocketStream (para leer y escribir a través de una conexión de enchufe)
  • TOleStream (para utilizar una interfaz COM para leer y escribir)

 

Como verá, TmemoryStream y TFileStream son notablemente intercambiables y compatibles.

 

¡Descargue un proyecto de muestra!

(0 votes)