Minha sugestão.
Mantenha a estrutura do TList de ClientDataSets.
Crie um TMemoryStream (MS)
Faça um loop para varrer o TList.
Para cada item:
- vc escreve um LongInt (N) (representando o tamanho dos dados [Data,
acho que é essa propriedade que guarda os dados do CDS] do CDS
respectivo) no MS
- escreve o conteúdo do Data do CDS no MS

Quando for ler, é só varrer o MS obtendo o tamanho dos dados pelo
primeiro longint (N) e ler N bytes para a propriedade Data do CDS. Se
ainda houver dados no MS, repita o procedimento, criando novo CDS.

São quase 11 horas da noite, eheh. Deu pra entender a minha idéia?

2009/6/23 Edelson Regis de Lima <edre...@ig.com.br>:
>
>
> Boa tarde!
>
> Pesssoal, alguem sabe se tem como gerar um TMemoryStream a partir de um
> TList?
> O TStringList até tem um SaveToStream, porém não salva os objetos contidos
> na lista, somente strings.
>
> Basicamente é o seguinte... preciso transportar vários ClientDataSets, e a
> melhor maneira é transformar em Stream primeiro.
> Só que eu não quero transportar um a um, eu quero "empacotar" todos os
> ClientDataSets numa Stream só.
>
> Aí pensei em colocar todos os ClientDataSets em um TList (ou algo do
> genero), e transformar esse TList em Stream. Só que o TList não tem o
> SaveToStream.
> Alguém sabe?
> Ou se alguem tiver alguma outra sugestão de fazer esse empacotamento, sem
> usar Lists, também será bem vinda...
>
> Até mais,
>
> Edelson.
>
> [As partes desta mensagem que não continham texto foram removidas]
>
> 



-- 
Timeo hominem unius libri
Cogito ergo sum - Carpe diem

[]s
Guionardo Furlan
http://guionardo.blogspot.com
http://www.guionardofurlan.com.br

Responder a