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