Newsgroup: it.comp.lang.delphi
Titolo: ClientDataSet: leggere da disco senza conoscerne la struttura

Esattamente come da subject.. come posso leggere un file CDS binario del quale però non conosco la struttura (che immagino vada
definita nelle proprietà del TClientDataSet prima di effettuare un banale LoadFromFile?)
Grazie
    - andrea

Immagino, presumo, penso, credo....
Tutte queste parole cedono il passo, in determinati contesti, a parole
come "documentarsi, informarsi, provare..."
1) Hai letto la guida? :-(
2) Sei al corrente di qualche topic dell'help dove è indicato se il
conoscere la strttura di un cds è o meno una condizione necessaria per
aprirlo? Se si, posta il titolo del topic.
3) Poi, giusto x essere pratici, prima di "immaginare", un test
minimale lo hai fatto? :-)
AS

 come "documentarsi, informarsi, provare..."
Capita a volte che la documentazione non sia chiara, provare non porti a molto, e che alla resa dei conti questi termini debbano
cedere a loro volta il passo all'immaginazione e alle supposizioni. Poi, certamente, c'è "informarsi": non è quello che sto facendo
qui sul newsgroup?
    - a.

 parti invece si risolve in un errore "Mismatch in datapacket".
Dataset o ClientDataset?
Non stai parlando di un Dataset di 
ado.net
, giusto?
AS

 parti invece si risolve in un errore "Mismatch in datapacket".
Il componente *TClientDataSet* carica e salva dati in un formato 
denominato "MyBase", sia in forma binaria che XML.
E' chiaro che devi fornire al componente un file che abbia questa 
struttura affinché esso possa essere interpretato.
Se nemmeno tu sai cosa c'è nel file binario che "dai in pasto" al CDS, 
come può saperlo lui? :-)
Non è che puoi aprire con CDS qualsiasi file binario (.doc, .jpg e così 
via)... questo mi sembra ovvio.
Ciao,
   Marco.
-- 
MARCO BREVEGLIERI
  (
http://www.marco.breveglieri.name
)

 Non stai parlando di un Dataset di 
ado.net
, giusto?
No no, un normale ClientDataSet in formato CDS che sto tentando di aprire con un TClientDataSet. Tuttavia credo di essere arrivato
alla radice del problema: teoricamente quei file CDS dovrebbero contenere molte stringhe - ma aprendoli con un file binario non ne
compare una sola, e più in generale la struttura del file e la ripetitività di certi pattern fa pensare ad un file criptato. Per
essere del tutto chiaro, i CDS che sto tentando di aprire sono contenuti nel CD Seat pagine bianche, che si basa per l'appunto su un
piccolo programma delphi.
    - a

 via)... questo mi sembra ovvio.
Ahem : )
    - a

 un eseguibile compilato con delphi (win32).
Da cosa lo hai dedotto? :-)


 essere del tutto chiaro, i CDS che sto tentando di aprire sono contenuti nel CD Seat pagine bianche, che si basa per l'appunto su un piccolo programma delphi.
ihmo, non è detto che un file con estensione cds sia un file creato da
un tclientdataset....
Magari se cerchi con google trovi qualche info sul formato del file
creato da clientdataset e puoi fare dei controlli sull'header per
capire se effettivamente quelli che tenti di aprire sono file di questo
tipo oppure no.
AS

 Da cosa lo hai dedotto? :-)
Dal fatto che nell'eseguibile compaiono stringhe che riportano tipi dell'object pascal ("boolean", "integer", "real"), funzioni
della VCL, e ... ahem, dall'icona di default con fiaccola di delphi 5.0 ..
    - a

 della VCL, e ... ahem, dall'icona di default con fiaccola di delphi 5.0 ..
Che posso dirti...evidentemente, il file CDS in tuo possesso si 
riferisce ad una versione precedente del formato di file usato dal 
componente, incompatibile con la versione attuale. :-|


...] CDS che sto tentando di aprire sono contenuti nel CD Seat pagine bianche[...]
Allora non sono file CDS compatibili col formato del TClientDataSet.
I file .CDS/.CMP dei CDS Seat sono in un formato proprietario.

 I file .CDS/.CMP dei CDS Seat sono in un formato proprietario.
La mia sensazione č che si tratti di comunissimi file CDS/CMP, ma che siano stati criptati e vengano decriptati appena prima
dell'effettivo utilizzo..