Newsgroup: it.comp.lang.visual-basic
Titolo: VB6 Array dinamici e liste di file...esiste una alternativa?

Problema:
Scandita ricorsivamente una serie di cartelle mi trovo a dover
memorizzare
una serie di path che puntano alle immagini trovate.
Si parla di GRANDI numeri....ossia ad esempio un utonto che mi lancia
la ricerca di tutte le jpg dell'HD...e me ne trova 10.000 e più
ed i path sono del tipo dal "sega"
c:\test.jpg
al
c:\foto\esterna\prodotto\galleria\ad434ds443\cap\refers\232323as\adsdds.jpg
(se non più mostruosi)
l'esigenza è di mantenere questa lista per poi scandirla (paginandola
ovvio) per mostrare le thumb
Le thumb le mostro a gruppi di 70 (10 righe da 7..ris. max 1024x768) in
una picture box scrollabile
logicamente sto ricercando la performance...non come fare!
Mi spiego....
se butto tutto dentro una redim preserve.....prima o poi trovo il pc
che mi va out of memory...io per i miei test ho le "dir piccole" e non
l'ho trovata...ma è solo questione di tempo...e so che dove va il
programma hanno giga e giga di immagini (studio architettura)
Purtroppo in C (quando sapevo programmare...ed ero ragazzo) avrei messo
tutto in memoria con uno swap su disco ...in vb6 posso giochicchiare
con la memoria
MA
mi conviene?
Adesso come adesso...sono arrivato a togliere i redim preserve
e a costruirmi un file di servizio...
rileggo quello....e genero le thumb
però se è "accettabile" aspettare un po per scandire le cartelle....
mi piace meno...il ritardo del :
leggere il file
mostrare thumb
Però mi sa che è il male minore!
mi era venuto in mente di simulare anche explorer
ossia di costruirmi...mentre scandisce le cartelle...il file
dbThumb...con campi fissi contenenti Thumb ed info....
ma forse sto arrovellandomi su me stesso e riscoprendo l'acqua calda???
Aiutatemi a ragionare......
Capisco che sto spaccando il pelo in 4...e che perfino acdsee ultima
versione ....mi fa aspettare un po a mostrarmi le thumb ( e si nota la
lettura sequenziale)...ma invecchiando sto diventando conoscitore
profondo degli utonti!

 programma hanno giga e giga di immagini (studio architettura)
Provato ad inserire le dir, mano mano che le leggi, in un listview 
nascosto? Potresti anche pensare di utilizzare le collection anzichč 
gli array.
-- 
USER ERROR: replace user and press any key to continue.
News 2002 [v 2.07] / StopDialer / PopDuster - 
http://www.socket2000.com
Akapulce portal: 
http://www.akapulce.net

 gli array.
abbi pazienza ma se mi rispondi così .....non hai capito nulla del
problema!
Scusa la franchezza!
a) Una list è un "oggetto" che appesantisce ulteriolmente...va bene per
le dir delle foto delle vacanze...non va bene per "tante" foto (ti va in
out of memory anche quello...anzi prima perchè occupa spazio!)
Inoltre...fai una prova empirica...
Riempi una listview...(consiglio: una listbox che è più leggera)...con
1000 path....e rileggila...va benissimo per la parrocchia...un po meno
se ricerchi un minimo di professionalità (e non è detto che anche la
parrocchia non voglia un minimo di qualità)
b)le collection....vecchia diatriba su questo ng ...alla fine la
soluzione pensata da Zanna Hal e co. (chissa se capitano ancora su
questo NG) era di riempire una collection e poi trasferire in una
matrice...le collection sono veloci a riempirsi...lente a rileggersi
Purtroppo tale metodo spreca un sacco di memoria e son convinto si
"siede" all'aumentare del numero di foto!
mia conclusione...
con VB6 è un casino (con NET perfino improponibile)
Ora avvio san Google e guardo nei vecchi post...c'era mi sembrava tanto
tempo fa ...un guru che swappava zone di memoria su disco!...in VB.
(OT)
Paperino Hal Zanna
...dove siete?
Siete tutti interNETtati....???
++++++++++++++++++++++++
P.S.
Scusa se ti arriva il msg in posta elettronica...avevo thunderbird...
Ora ho installato Dialog...credo che il msg appaia nel NG...
Sorry!...non volevo spammare!
+++++++++++++++++++++++++

 Scusa la franchezza!
Hai ragione. Ho citato le listview ma intendevo in realtà le listbox.
Ti assicuro che sono molto malleabili e sufficientemente veloci. 
Azzerare con un clear una listbox da 10000 elementi (diecimila) su un
athlon 2000 ci mette 0,02 secondi. Riempirlo 0,3.... Fai un po' tu. 
-- 
IBM: Industry's Bulging Monolith


Wodka40[Google] ha scritto:

Se non erro c'è anche la possibilità di usare array linkaty su
memoria mappata....
Prova a vedere se questo si avvicina il 3D è relativo ad una
problematica simile:
http://tinyurl.com/zl56t
In particolare il Post:
Da:  Schmidt
Data:  Gio 30 Dic 2004 01:39 
@Alex
@Alex