Streams, Streams, TStream en Delphi

click fraud protection

¿Qué es un flujo? TStream?

Una secuencia es lo que su nombre sugiere: un "río de datos" que fluye. Una transmisión tiene un principio, un final, y siempre estás en algún punto intermedio entre estos dos puntos.

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

¿Qué datos puede contener un flujo?

Una transmisión puede contener lo que desee, en el orden que desee. 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. Sin embargo, recuerde que usted es responsable del hogar. ¡No hay forma de que Delphi pueda "recordar" qué tipo de datos hay en una secuencia, o en qué orden!

Streams Versus Arrays

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

instagram viewer

Una transmisión, por otro lado, puede crecer hasta el tamaño de la memoria disponible, que es considerablemente más grande en los sistemas actuales, sin ningún tipo de tareas domésticas.

Una secuencia no se puede indexar, como puede hacerlo una matriz. Pero como verá a continuación, "caminar" arriba y abajo de un arroyo es muy fácil.

Las secuencias se pueden guardar / cargar en / desde archivos en una operación simple.

Sabores de corrientes

TStream es el tipo de clase base (abstracta) para los objetos de flujo. Ser abstracto significa que TStream nunca debe usarse como tal, sino solo en sus formas descendientes. Para transmitir 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 socket)
  • TOleStream (para usar una interfaz COM para leer y escribir)

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

Descargar proyecto de muestra!

instagram story viewer