Newsgroup: it.comp.lang.visual-basic
Titolo: [?] Consiglio ...

Devo distribuire un file che deve assolutamente contare sulla presenza di
altri file (file immagini, file sonori, etc.). Insomma, un gruppo di file di
diversa natura ma far loro interdipendenti.
Ipotizzando che il programma applicativo (VB6), le librerie necessarie e i
controlli utilizzati siano già correttamente "setuppati" sulla macchina
ricevente, vorrei rendere totalmente autonomo tale file, ovvero unico e
cumulativamente "omnicomprensivo". Per intenderci, facciamo finta che sia un
_unico_ file Word o Publisher che contiene al suo interno, oltre che i
testi, anche le immagini che dovrà poi riprodurre.
Avrei pensato di comporre questo file (di sola lettura, nel senso che non
verrà mai modificato se non ricostruendolo daccapo) accodando (ovviamente
con una procedura di utilità da usarsi alla fonte) i file binari l'uno dopo
l'altro (paro-paro), mettendo però in testa una specie di indice che mi dica
quali sono (nome) i file compresi e i bytes di partenza e di fine di ciascun
file (un po' come avviene, suppongo, quando si crea un CD). La procedura
applicativa che legge, interpreta e riproduce dovrà, evidentemente, fare il
contrario dell'utility che ha composto il file e (per pura convenienza)
estrarre e ricreare localmente e fisicamente i file originali, magari
cancellandoli all'abbandono, mantenendo cioè solo il file originario
completo e autonomo.
Ipotizzando di non dover/poter contare su WinZip, nè su alcun programma di
Setup e, inoltre, di non utilizzare alcuna DLL o OCX che pure possa servire
egregiamente allo scopo, pensate che quanto descritto sia (in VB6)
applicabile, schizofrenico o decisamente da neurodeliri? Grazie.

 applicabile, schizofrenico o decisamente da neurodeliri? Grazie.
Prego, dimmi se ho capito cosa volevi fare o no. Ciao Goog coding

 compilare un file .res sono sul cd di vb.
Io non devo distribuire un programma VB, ma solo un agglomerato di file che
un programma VB (gią residente sulla macchina ricevente) dovrą interpretare.
Comunque, ammetto che (non usando file .res) non so se questi siano
distribuibili separatamente dal programma che li deve utilizzare. Mi risulta
che tali file debbano esserre compilati insieme al progetto, e, alfine,
fanno parte dell'EXE.

 file (un po' come avviene, suppongo, quando si crea un CD).
Avevo fatto qualche mese fa una cosa del genere: un exe che leggeva tutti i
files di una dir e se li accodava (a se stesso) in modo da avere alla fine
un exe-one autoscompattante, solo che per comodità l'indice (che cresceva
man mano che i files venivano accodati) era in fondo e non all'inizio.
Se vuoi ti passo il progettino, ma l'avevo fatto in Delphi proprio perchè
così potevo creare un exe indipendente da librerie varie.
Ciao
--
' // Initialize the expression evaluator
Engines.Evaluator = CreateObject("
http://www.neodatatype.net
")
' // you can find resources for and from the NG here!
Me.SitoComune = "
http://www.it-lang-vb.net
"

 così potevo creare un exe indipendente da librerie varie.
Zanna, ti ringrazio, ma (a parte Delphi che non conosco), preferisco che il
codice sia "mio".
Senza offesa e pur nella massima fiducia ;-)
Nella fattispecie, poi, se l'idea non è proprio malsana, direi che non ho
problemi nell'applicarla (ho anch'io le mie routines di accodamento files
già pronte)

 ha scritto nel messaggio
news:C6lg9.5759$eG6....@twister1.libero.it...
[cut]
gia' fatto e perfettamente funzionante, nonche' decisamente veloce. l'ho
utilizzato per salvare gli skins di un mio programma: ogni skin e' formato
da diverse bmp, ma io volevo che fosse tutto in un file unico, per
comodita'; cosi' ho utilizzato un metodo simile a quello di zanna ma, visto
che i file dovevano necessariamente essere scompattati tutti insieme ho
fatto a meno dell'indice. i miei files avevano questa struttura:
    header:
1byte -> numero di files compresi nell'"archivio"
    data:
1byte -> lunghezza della stringa col nome del file
xbytes -> stringa contenente il nome del file
4bytes -> dimensione del file
xbytes -> file
cosi' leggo il numero di files dal primo byte e con un semplice ciclo for
ricostruisco file per file tutto il contenuto.
per un caso come il tuo, in cui penso tu debba poter accedere a qualsiasi
file nell'archivio senza dover estrarre prima gli altri, il metodo
dell'indice e' decisamente azzeccato. magari riservando i primi 4bytes del
file per indicare la posizione dell'indice (se decidi di posizionarlo in
fondo).
ciao, assa.

 Se vuoi ti passo il progettino...
E ora (ma cacchio, quand'è che mi riuscirà di stare zitto?!), come me la
cavo con Aran Banjo?