Akarsu, Akarsu, Delphi TStream

Akış Nedir? TStream?

Bir akarsu adından da anlaşılacağı gibi akan bir "veri nehri". Bir akışın bir başlangıcı, bir sonu vardır ve her zaman bu iki nokta arasında bir yerdesiniz.

kullanma Delphi en TStisk dosyaları, disk dosyaları, dinamik bellek vb. Gibi çeşitli depolama ortamlarından okuyabilir veya bunlara yazabilirsiniz.

Bir Akış Hangi Verileri içerebilir?

Bir akış, istediğiniz sırayı istediğiniz sırayla içerebilir. Bu makaleye eşlik eden örnek projede, basitlik amacıyla sabit boyutlu kayıtlar kullanılmıştır, ancak değişken boyutlu verilerin herhangi bir karışımını bir akışa yazabilirsiniz. Ancak, ev işlerinden _you_ sorumlu olduğunuzu unutmayın. Delphi'nin bir akışta ne tür bir veri olduğunu ya da hangi sırayla "hatırlayabileceği" hiçbir şekilde yoktur!

Akışlara Karşı Diziler

Diziler, derleme zamanında bilinmesi gereken sabit bir boyuta sahip olma dezavantajına sahiptir. Tamam, dinamik diziler kullanabilirsiniz.

Öte yandan, bir akış, "ev" işleri olmadan, günümüz sistemlerinde oldukça büyük olan kullanılabilir bellek boyutuna kadar büyüyebilir.

instagram viewer

Bir dizi olabileceği gibi bir akış dizine eklenemez. Ancak aşağıda göreceğiniz gibi, bir dere yukarı ve aşağı "yürümek" çok kolaydır.

Akışlar tek bir basit işlemle kaydedilebilir / dosyalara yüklenebilir.

Akarsu Lezzetleri

TStream akış nesneleri için temel (soyut) sınıf türüdür. Soyut olmak, TStream'in asla bu şekilde kullanılmaması gerektiği, sadece onun soyundan gelen biçimlerde kullanılması gerektiği anlamına gelir. Her türlü bilgiyi akış için, belirli veri ve depolama ihtiyaçlarına göre bir alt sınıf seçin. Örneğin:

  • TFileStream (dosyalarla çalışmak için)
  • TMemoryStream (bellek arabelleği ile çalışmak için)
  • TStringStream (bellek içi dizeleri değiştirmek için)
  • TBlobStream (BLOB alanları ile çalışmak için)
  • TWinSocketStream (soket bağlantısı üzerinden okuma ve yazma için)
  • TOleStream (okuma ve yazma için bir COM arabirimi kullanmak için)

Gördüğünüz gibi, TmemoryStream ve TFileStream oldukça değiştirilebilir ve uyumludur.

Örnek projeyi indirin!