[Lazarus-es] Problema con Base64
José Mejuto
joshyfun en gmail.com
Lun Dic 12 13:48:16 CET 2016
El 12/12/2016 a las 9:12, Antonio Evora via Lazarus-es escribió:
> Efectivamente José, todo solucionado!!!!
>
> Mil gracias.
>
> PD: ¿Ese "Flush" no debería de hacerlo internamente cuando le pido el
> DataString (con o sin persistencia)?
Hola,
No porque un stream es un flujo continuo de datos y DataString sólo
pertenece TStringStream y es una capa interna de datos. Podría hacerlo
automáticamente el stream de encode64 al pedir el DataString, pero la
verdad es que todos los streams funcionan del mismo modo, y todos
aquellos que necesitan que les indiques el final usan un flush. Si lo
hiciera automáticamente también tendría que hacerlo cada vez que haces
un "Read", "CopyFrom", etc, lo cual complicaría sobremanera el stream y
podría generar situaciones extrañas, como (pseudo código):
Stream.Write('A',1);
Stream.Position:=0;
Stream.Read(A,1);
Stream.Position:=0;
Stream.Write('B',1);
Stream.Position:=0;
Stream.Read(B,Stream.size);
C:=A+B;
Esperamos que C sea igual a "AB" pero en este caso sería algo como:
"A===B==="
Si se hiciera el flush automático.
--
Más información sobre la lista de distribución Lazarus-es