Streams, Streams, TStream in Delphi

click fraud protection

Was ist ein Stream? TStream?

Ein Stream ist das, was sein Name andeutet: ein fließender "Datenfluss". Ein Stream hat einen Anfang, ein Ende und Sie befinden sich immer irgendwo zwischen diesen beiden Punkten.

Verwenden von Delphi TStream-Objekte, die Sie von verschiedenen Arten von Speichermedien lesen oder auf diese schreiben können, z. B. Festplattendateien, dynamischer Speicher usw.

Welche Daten kann ein Stream enthalten?

Ein Stream kann alles enthalten, was Sie möchten, in der Reihenfolge, die Sie möchten. In dem diesem Artikel beigefügten Beispielprojekt werden der Einfachheit halber Datensätze mit fester Größe verwendet. Sie können jedoch eine beliebige Mischung von Daten mit variabler Größe in einen Stream schreiben. Denken Sie jedoch daran, dass Sie für den Haushalt verantwortlich sind. Delphi kann sich auf keinen Fall "erinnern", welche Art von Daten sich in einem Stream befinden oder in welcher Reihenfolge!

Streams versus Arrays

Arrays haben den Nachteil, dass sie eine feste Größe haben, die zur Kompilierungszeit bekannt sein muss. Ok, Sie können dynamische Arrays verwenden.

instagram viewer

Ein Stream hingegen kann bis zur Größe des verfügbaren Speichers wachsen, der auf heutigen Systemen beträchtlich groß ist, ohne dass Hausarbeiten erforderlich sind.

Ein Stream kann nicht wie ein Array indiziert werden. Aber wie Sie unten sehen werden, ist es sehr einfach, einen Bach auf und ab zu gehen.

Streams können in einem einfachen Vorgang in / aus Dateien gespeichert / geladen werden.

Aromen von Bächen

TStream ist der Basisklassentyp (abstrakt) für Stream-Objekte. Abstrakt zu sein bedeutet, dass TStream niemals als solches verwendet werden sollte, sondern nur in seinen Nachkommenformen. Wählen Sie zum Streamen von Informationen aller Art eine Nachkommenklasse entsprechend den spezifischen Daten- und Speicheranforderungen aus. Beispielsweise:

  • TFileStream (zum Arbeiten mit Dateien)
  • TMemoryStream (zum Arbeiten mit einem Speicherpuffer)
  • TStringStream (zum Bearbeiten von In-Memory-Strings)
  • TBlobStream (zum Arbeiten mit BLOB-Feldern)
  • TWinSocketStream (zum Lesen und Schreiben über eine Socket-Verbindung)
  • TOleStream (zur Verwendung einer COM-Schnittstelle zum Lesen und Schreiben)

Wie Sie sehen werden, sind TmemoryStream und TFileStream bemerkenswert austauschbar und kompatibel.

Beispielprojekt herunterladen!

instagram story viewer