Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Internet (https://www.clubdelphi.com/foros/forumdisplay.php?f=3)
-   -   ¿Dónde va a parar el contenido de un TStream? (https://www.clubdelphi.com/foros/showthread.php?t=6892)

DarkByte 27-01-2004 07:58:45

¿Dónde va a parar el contenido de un TStream?
 
Hola, hace unos meses me compré "La Biblia de Delphi 7" de Marco Cantú, y en uno de sus ejemplos, que servía para hacer una aplicación cliente/servidor que transmitiese imágenes, en el cliente me ponía lo siguiente:

Código:

var
  stream: TStream;
begin
          //Solicito el archivo...
  IdTCPClient1.WriteLn('getfile ' + HttpEncode (edFileName.Text));
          //Creo el Stream
  stream := TMemoryStream.Create;
          //Intento...
  try
          //Leer la stream
    IdTCPClient1.ReadStream(stream);
          //Posiciono el stream al principio
    stream.Position := 0;
          //Cargo la imágen del Stream y la pongo en el Image1
    Image1.Picture.Bitmap.LoadFromStream (stream);
  finally
          //Libero a Willy y al stream.
    stream.Free;
  end;

Los comentarios los tenía puesto yo cuando intenté comprender el código por 1º vez y no me he molestado en borrarlo, mi pregunta es: ¿Dónde va a parar el contenido del stream en el disco?. Pues todo tiene que ocupar algo en algun lugar.

__hector 27-01-2004 14:09:01

En memoria...

DarkByte 28-01-2004 07:52:44

:D ¿En memoria que te refieres en el disco duro o que la mantiene la Ram?

marcoszorrilla 28-01-2004 14:57:44

Se refiere a la memora RAM.

Un Saludo.

marto 28-01-2004 16:16:48

Dadas las "extensas" explicaciones, me permito extenderlas un poquito. TStream no es mas que un TAD que reprepresenta una cierta información de manera secuencial. De hecho, no se diferencia demasiado de una cola. Cuando haces el Free del objeto, éste libera toda la memoria que estaba ocupando y, por lo tanto, la estructura interna que usa para guardar la información.
En conclusión, esa stream está en la memoria tal y como te han dicho y, cuando destruimos el objeto, toda la memoria que estaba ocupada queda libre y el stream ya no existe.
Espero que te sirva para entender un poco más el mecanismo.

kinobi 28-01-2004 16:28:12

Hola,

Cita:

Empezado por marto
Dadas las "extensas" explicaciones, me permito extenderlas un poquito. TStream no es mas que un TAD...

y ya puestos en "extensiones", un TAD (o ADT en Inglés) es un Tipo Abstracto de Datos. Simplificando mucho, un tipo de datos sobre el que se definen una serie de operaciones básicas (entrada, salida, consulta, ...): pilas, colas, listas, ...

Saludos.

marto 28-01-2004 16:39:29

Cita:

Empezado por kinobi
y ya puestos en "extensiones", un TAD (o ADT en Inglés) es un [i]Tipo Abstracto de Datos

...cuesta explicar temas técnicos sin caer en tecnicimos.... :o

kinobi 28-01-2004 16:44:54

Cita:

Empezado por marto
...cuesta explicar temas técnicos sin caer en tecnicimos.... :o

por ello a veces hay que dejarse llevar por:

Cita:

Empezado por kinobi
Simplificando mucho, un tipo de datos...

Saludos

DarkByte 29-01-2004 07:53:37

Pues fijaos, hoy voy a dejar rayado a mi english teacher dicíendole que un Stream no es una corriente de água o de lo que sea (como el me dijo), sino un tipo abstracto de datos que reprepresenta una información de manera secuencial hasta que se libera... a ver que cara pone.

¿Pondrá la misma que cuando le dije que el código de la pizarra estaba mal, que cuando se ponía If ... Then era recomendable poner begin o cuando le dije que había mencionado repeat sin terminar con Until o Finally?.

DarkByte 29-01-2004 08:06:18

Ah, se me olvidaba, gracias a todos por las respuestas, ya se algo más. Saludos a todos y sobre todo a mis compañeros madrugadores :D. A marcoszorrilla se le ve todas las mañanas de 7:40 a 8:00, es de turno fijo... :D

marto 30-01-2004 20:42:55

Cita:

Empezado por DarkByte
hoy voy a dejar rayado a mi english teacher dicíendole que un Stream no es una corriente de água o de lo que sea (como el me dijo), sino un tipo abstracto de datos

En dos palabras: Im-presionante!!!! :D :D :D :D :D :D :D


La franja horaria es GMT +2. Ahora son las 05:17:01.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi