Link to home
Start Free TrialLog in
Avatar of PPaul
PPaul

asked on

Streaming ?

I've come accross streaming many times whill trying to learn Delphi 2.  I looked into the online help and was even more lost. Looking around, there is little to no write-ups on the subject and I'm going NUTS!! (At this point it's a short trip!!) I would like to know what it is and how to use it. An example would be nice. :-)
Avatar of PPaul
PPaul

ASKER

Edited text of question
ASKER CERTIFIED SOLUTION
Avatar of javiertb
javiertb

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
I think for 200 points an example or a better description could be added.  Pointing him to a book is a 50 pt. question response.  Most of these books are in the $50 - $75 range.
Sorry about that, I didn't notice the points.
Streams are objects used for managing data currents. There are two families of streams, one descending from TStream and another from TIStream.
Let's take for example TIStream: It's simply a common base that stablishes which methods its descendants will have to implement (having this way a common interface).

Once we have created a child from TIStream, we basicly use its three methods which will help us to write information, read information and move from one place to another from within the stream.The methods are write, read and seek.
An example of stream would be the child from TIStream TVirtualStream. This type allow us to use data that sometimes can be stored in memory and other times in disk without any differences in the code. The following piece of program creates an object that can be used with the same methods, but in some cases it'll be working with memory data and in other cases it'll be doing it with disk data.

  const
     str1: String = 'String1';
  var
     streamobj: TVirtualStream;

  begin
     if CheckBox1.Checked Then  {using memory}
        streamObj:=            TVirtualStream.Create(TIMemoryStream.Create(Nil))
     else                       {using disk}
           sreamObj:=TVirtualStream.Create (TIFileStream.Create            ('data.dat',fmCreate Or fmOpenWrite));

     streamobj.Write(String1. Length(String1)+1);

     streamobj.Free;
  end;

Hope this helps