"Brian Andersen (
www.europeansoftwarehouse.com)" <x@x.x> skrev i en
meddelelse news:IOPdh.6$r46.1@news.get2net.dk...
>> Nogen der kan forklare hvad stream egentlig benyttes til, jeg tænker på
>> at man kan streame en tekst med f.eks. Indy´s TCP komponent, og mange
>> andre komponenter har også mulighed for at streame f.eks. også når man
>> henter og gemmer filer.
>> Hvad er forskellen på at streame og så bare at benytte f.eks. en
>> SaveToFile funktion eller at streame med Indy i stedet for bare at
>> benytte SendText, SendBuffer osv.?
>>
> Hhhmmm. Hvordan skal man forklare det? I teorien kan man betragte alt som
> en Stream. Sender du en tekst streng via SendText, så Stream'er du efter
> min mening også.
>
> Det smarte ved TStream klassen er, at Borland har indkapslet en hel masse
> brugbar funktionalitet (generalisering). Ved at udvidde denne klasse, så
> kan du få en klasse som Stream'er til Hukommelsen, til fil eller som
> komprimere det indhold du fodre Stream'en med. Komprimering er jo ret
> smart, hvis du vælger at sende indholdet af Stream'en via Indy.
>
> Noget andet du skal betragte er Polymorfi. Det vil sige, at har du først
> skrevet noget funktionalitet som benytter TStream klassen, så kan du bruge
> en hvilket som helst stream. Et eksempel kunne være SendStream(AStream:
> TStream); Alle klasse der er nedarvet fra TStream kan bruges som den
> Aktuelle parameter. Et par eksempler kunne være:
>
> SendStream(MyZipStream);
> SendStream(MyArjStream);
> SendStream(MyCabStream);
> SendStream(MyMemoryStream);
> Etc.
>
> Her er metoden SendStream lige glad med hvilken Stream den benytter. Den
> anvender blot den generaliserede adfærd, som er blevet implementeret i
> TStream klassen.
>
> Jeg har ikke lige læst det jeg har skrevet igennem, da jeg har lidt travlt
> på arbejdet. Hvis det er uforståligt, så håber jeg da, at du har fået lidt
> ud af det alligevel. Skriv eventuelt, hvis du har nogle spørgsmål.
jo det var en fin forklaring, tak for det. Det jeg så ikke kan forstå er at
når nogen i en NG spørger om hvordan man f.eks. henter en fil eller gemmer
en fil så er der nogen der giver et eks. på det ved at benytte stream og så
sidder den stakkels nybegynder der og syntes det er så svært, og i stedet
kunne man have skrevet at han bare kunne benytte SaveToFile, LoadFromFile
som han sikkert ville syntes var meget lettere at forstå.
Så altså, hvis det eneste man lige har brug for er at gemme en fil og ikke
andet så er der ingen grund til at rode med stream, er det ikke rigtig?
/HK