Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1399 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Runtime error - Overflow .... PB Memoire ????

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VB] Runtime error - Overflow .... PB Memoire ????

n°222071
kicest
Mais qui c'est ce kicest ?
Posté le 30-09-2002 à 22:07:32  profilanswer
 

Bonjour,
 
j ai fait un programme en VB, et j ai un msg d erreur (runtime error 5 - overflow).
 
J ai l impression que j ai un pb de memoire ....
 
J ai effectivement une grande quantite de tableau assez grand.
 
1 - Comment agrandir, si  c est le pb, la taille memoire allouée pour mon programme.
 
2- si je fait redim toto() , est-ce que mon tableau est remis à null ?
 
4- est-ce que l instruction redim preserve toto(x to y, a to b)
ou 0 > X < 4000 , pour chaque X, pose des PB en terme de memoire ?
 
3- comment "flusher" les tableaux en memoire lorsque je le désire ?
 
Je me trompe surement, merci de vos reponses.


Message édité par kicest le 30-09-2002 à 22:29:19
mood
Publicité
Posté le 30-09-2002 à 22:07:32  profilanswer
 

n°222083
mareek
Et de 3 \o/
Posté le 30-09-2002 à 23:16:12  profilanswer
 

kicest a écrit a écrit :

Bonjour,
 
j ai fait un programme en VB, et j ai un msg d erreur (runtime error 5 - overflow).
 
J ai l impression que j ai un pb de memoire ....
 
J ai effectivement une grande quantite de tableau assez grand.
 
1 - Comment agrandir, si  c est le pb, la taille memoire allouée pour mon programme.
 
2- si je fait redim toto() , est-ce que mon tableau est remis à null ?
 
4- est-ce que l instruction redim preserve toto(x to y, a to b)
ou 0 > X < 4000 , pour chaque X, pose des PB en terme de memoire ?
 
3- comment "flusher" les tableaux en memoire lorsque je le désire ?
 
Je me trompe surement, merci de vos reponses.



il me semble que les erreurs de type overflow, c'est plutot le dépassement de capacité d'un type de donnée (par exemple donner une valeure supérieure à 65000 à un integer), regarde plutoto de ce coté à mon avis.
 
1. le programme s'ocrtroie la mémoire qui lui est nécessaire tout seul comme un grand (avec l'aide de windows quand même) jusqu'a ce qu'il n'y en ai plus de disponible. A ce moment tu auras un message d'erreur de windows (et non de VB) qui te diras que tu manques de mémoire virtuelle.
 
2. si tu fais un "redim toto(x)" toutes les données de ton tableau seront perdues, pour ne pas écraser tes données, il faut que tu fasses "redim preserve toto(x)".
 
3.qu'est-ce que tu veux dire par "flusher" ? je comprends pas trop  :??:  
 
 
 :hello:


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack
n°222084
kicest
Mais qui c'est ce kicest ?
Posté le 30-09-2002 à 23:26:54  profilanswer
 

mareek a écrit a écrit :

il me semble que les erreurs de type overflow, c'est plutot le dépassement de capacité d'un type de donnée (par exemple donner une valeure supérieure à 65000 à un integer), regarde plutoto de ce coté à mon avis.
 
1. le programme s'ocrtroie la mémoire qui lui est nécessaire tout seul comme un grand (avec l'aide de windows quand même) jusqu'a ce qu'il n'y en ai plus de disponible. A ce moment tu auras un message d'erreur de windows (et non de VB) qui te diras que tu manques de mémoire virtuelle.
 
2. si tu fais un "redim toto(x)" toutes les données de ton tableau seront perdues, pour ne pas écraser tes données, il faut que tu fasses "redim preserve toto(x)".
 
3.qu'est-ce que tu veux dire par "flusher" ? je comprends pas trop  :??:  
 
 
 :hello:  




j ai cette erreur des que je rajoute un array.
Sans ce rajout, le prog tourne tres bien .... C est pour cela que je pensais à un depassement de capacite.
 
Pour la fonction redim, en fait je declare mes tableaux (general), afin de pouvoir les utiliser de fonction en fonction
mais ils sont généralement temporaires, et je voulais juste savoir si le fait d avoir un tableau par exemple (0 to 4500, 0 to 70) et de faire redim tableau cela le vidait (Dans la mémoire, ou si sa place occupée, est laissée tel quelle et utilisable par un autre tableau ...) mais j etais partit dans une idée de pb memoire ...... je connais et use à outrance de redim preserve .....
 
Par le terme flusher, je voulais dire Effacer de la memoire, l existence de ce tableau en terme d'espace ....
 
J espere que c est assez clair, moi meme en relisant c est limite ......
 
Peut-on deleter un tableau ? (l inverse de dim finalement (rem peut etre ....)

n°222086
Carbon_14
Posté le 30-09-2002 à 23:46:15  profilanswer
 

Si ça vient d'un ajout, faudrait essayer de cerner pas à pas ce qui se passe.
On peut avoir overflow aussi si on divise n par zéro, ou log(<=0).
Si on dépasse un indice de dimension, il me semble que le message est différent.
 
Allouer des tableaux dynamiquement, c'est une très bonne idée car on n'occupe que la mémoire dont on a besoin, ça évite les surdimensionnements au cas où.
Redim permet d'effacer les données (et normalement de libérer la mémoire qui servait si on a un volume moindre). Dans le pire des cas, pour libérer l'espace, on peut faire un redim (1).
La fonction ERASE permet de détruire un tableau dynamique (sous QB du moins) => libérer RAM.
 
La libération de mémoire, c'est le compilo et Windows qui s'en occupent quand on utilise les bonnes instructions. Si on erase un tableau, on espère que la RAM deviendra disponible :D.
 
Sinon, je ne suis pas sur que l'on peut avoir plus de 65000 cases dans un tableau (à vérifier, souvenir QB DOS). Si on a dim Tab(1 to 65, 1 to 10, 1 to 200), ça fait 130000 "cases" : overflow possible car le pointeur risque de sortir de son lit...


Message édité par Carbon_14 le 30-09-2002 à 23:46:52
n°222092
mareek
Et de 3 \o/
Posté le 01-10-2002 à 00:09:47  profilanswer
 

kicest a écrit a écrit :

 
j ai cette erreur des que je rajoute un array.
Sans ce rajout, le prog tourne tres bien .... C est pour cela que je pensais à un depassement de capacite.
 
Pour la fonction redim, en fait je declare mes tableaux (general), afin de pouvoir les utiliser de fonction en fonction
mais ils sont généralement temporaires, et je voulais juste savoir si le fait d avoir un tableau par exemple (0 to 4500, 0 to 70) et de faire redim tableau cela le vidait (Dans la mémoire, ou si sa place occupée, est laissée tel quelle et utilisable par un autre tableau ...) mais j etais partit dans une idée de pb memoire ...... je connais et use à outrance de redim preserve .....
 
Par le terme flusher, je voulais dire Effacer de la memoire, l existence de ce tableau en terme d'espace ....
 
J espere que c est assez clair, moi meme en relisant c est limite ......
 
Peut-on deleter un tableau ? (l inverse de dim finalement (rem peut etre ....)  



:heink: combien tu utilises de tableaux ? quelle est leur taille maximum?  ça métonnerait vraiment que ça soit une question de mémoire, peut-être que tu utilise trop de variables ou des tableaux avec trop d'éléments (les index sont peut-être des integer donc limité à 65000 et des bricoles).
 
Si t'as toujours des pb avec les tableaux, essaye d'utiliser des collections, c'est plus souple (et un peu plus lourd) et ya pas de pb avec la mémoire.


---------------
"I wonder if the internal negative pressure in self pumping toothpaste tubes is adjusted for different market altitudes." John Carmack

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [VB] Runtime error - Overflow .... PB Memoire ????

 

Sujets relatifs
[ASP] On Error resume next Kezako ?Pb d'éxécution de dll en runtime
phpBB : Critical Error Error creating new session : session_begincreations de consoles sous unix ou sous darwin avec Runtime()
Comment reloader en mémoire des ClassStack Overflow
création de form - perte de mémoire insideChargement d'un fichier en mémoire
Fatal error: Call to unsupported or undefined function foreach()J'ai un overflow buffer dans un .cgi
Plus de sujets relatifs à : [VB] Runtime error - Overflow .... PB Memoire ????


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR