Newsgroup: it.comp.lang.visual-basic
Titolo: [LUNGHETTO]memoria esaurita, indice non compreso nell'intervallo

Ciao a tutti
sono abbstanza nella merda, non sono qui a chiedervi una soluzione al mio
problema, ma bensì un modo di agire, perchè non so come fare.
Ho realizzato un programma per l'azienda in cui lavoro, che non deve far
altro che copiare dei file da una cartella ad una di back-up, dopodichè
copiarne altri su quelli precedentemente backuppati.
Volendo gestire tutta la movimentazione dei file uno ad uno, ho evitato
comandi che copiassero in blocco intere cartelle, anzi mi sono riempito
array con le cartelle e i file contenuti all'interno, in questo modo posso
scrivere su un db tutto quello che il mio programma esegue, posso
intercettare singoli file che non vengono copiati perchè in uso etc...
Per la cronaca, sarebbe un programma di aggiornamento gestionali per le
nostre succursali, in modo tale da sbrigare il lavoro degli agg. al mattino
quando tutti gli utenti sono fuori dai programmi, come procediamo ora invece
è una maletta perchè sono io che a manina devo chiamare tutte le sedi, una
ad una, farli uscire dai programmi ed aggiornarglieli, facendo ovviamente
casino il 50% delle volte.
Comunque, tornando al nocciolo del problema, l'applicazione copia i file,
poi dopo un po' viene scatenato un errore di runtime memoria esaurita, ho
inserito una gestione degli errori tale da dare modo al programma di
continuare lo stesso il lavoro nonostante avvengano inconvenienti
registrando però gli stessi  su un database, il colmo è che i file vengono
comunque copiati.
Questo fino a quando per uno sconosciuto motivo il programma si ferma per
errore di runtime "indice non compreso nell'intervallo" penso tra l'altro di
immaginare in quale parte di codice ci sia il problema, in quanto le routine
non coperte da gestione errori sono pochissime.
A questo punto penso, va beh, non c'è problema, adesso faccio un debug,
scopro dove si trova il problema lo risolvo e amen.
Invece no, perchè quando lo provo sul mio portatile funziona da dio.
Allora penso
cacchio! dipenderà dai file che sono presenti in quella determinata situazio
ne.
Allora mi copio l'hard disk di questa macchina su cui ho il problema nell
portatile, lancio vb, commento la gestione degli errori e provo.
Indovinate?
FUNZIONA PERFETTAMENTE!
Non riesco a capire da cosa potrebbe derivare il problema, perchè quando lo
provo da vb errori non ne dà, nonostante la situazione sia la stessa in cui
gira l'app. compilata, (a parte velocità superiore del processore).
Ora, non potendo installare l'ambiente di sviluppo a destra e ammanca cosa
mi consigliate di fare?
Cioè., io ho delle idee, su quale parte di codice crei dei problemi, però
se in fase di testing và tutto bene che cacchio ci devo fare?
se volete vi posto o vi mando via mail il codice.
Ciao
Grazie a chi mi risponde e a chi pazientemente è arrivato in fondo nella
lettura di questo post.

in effetti la prima cosa che ho pensato è che il numero dei files sul PC
dell'utente sia andato a "sforare" il numero degli elementi dell'array che
hai usato per memorizzare il tutto......
qualche osservazione:
1) come fai ad inizializzare il numero di elementi degli array per contenere
i files? se magari in questa fase c'è qualcosa che non va, tu inizializzi
l'array con 100 elementi, mentre in realtà i files sono 120 e quindi hai
l'errore che ci hai detto prima.
2) Occhio a conteggiare i files, compresi anche quelli nascosti e di
sistema.....
3) Io metterei in piedi una sorta di file di log dove segni tutto quello che
accade; non usare un MDB come facevo io all'inizio, usa un file .txt
aprendolo in modalità append e sei a posto.....
4) una volta avevo messo a punto un form per la gestione errori: oltre al
classico pulsante Chiudi, avevo messo diverse text-box dove in esecuzione
scrivevo la routine che aveva generato l'errore, il messaggio di errore
(codice+descrizione) e così via......tu pensa che se il PC era collegato ad
Internet, mi facevo addirittura spedire un'e-mail con tutto quanto, così
precedevo la telefonata del cliente!!!
:-))
cmq, per adesso ti auguro good coding!!!!
--
Damiani Liborio Igor
idam...@hotmail.com
 - 
igor.d...@light.it
http://www.igordamiani.it
ICQ : 11847262

 sistema.....
quelli nascosti e di sistema li escludo a priori, perchè non sono rilevanti
ai fini dell'aggiornamento, che invece deve toccare solo dei file .exe e
.qrp
ma ancora mi sto chiedendo, senza risposta... da cosa può dipendere l'errore
memoria esaurita?
generalmente in che contesto salta fuori?
Grazie ancora a tutti

 escluderei questo tipo di inghippo.
Vai di Redim Preserve, LBound() e UBound() ... molto meglio  :)
Cia'
--
Faber

 ho dihciarato array di 1000 elementi, rpoverò ad aumentare a
10000 però se
Io lo avevo messo a 10000, ma mi sono trovato con una directory
da 14000 files... :-) Fai come sopra.


grazie a tutti

Penso di aver risolto, mi ero scordato un resume next nella gestione degli
errori...
:-(
PIRLA PIRLA PIRLA PIRLA PIRLA....

e ci hai fatto diventare tutti matti per un On Error Resume Next
mancante?!?!?!?!!
ma sei pazzo?!?!!?!? ma tu guarda un po'........
(ovviamente scherzo)
meglio cosě, buon lavoro!!!!
---


 ha scritto nel messaggio
news:adhsbt$8lq$1...@fe2.cs.interbusiness.it...

Mai vantarsi.
... ovviamente anch'io scherzo! ;-)))