Comment faire pour les "gros" besoin de mémoire ?

kabak Messages postés 11 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 8 décembre 2010 - 26 oct. 2010 à 17:25
kabak Messages postés 11 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 8 décembre 2010 - 28 oct. 2010 à 23:52
Bonjour,

Dans l'une de mes applications, j'aurais besoin de faire plusieurs tableau ayant des tailles qui approchent sérieusement des 64Kio.

Hors même si independamment ces tableau de taille fixe sont inférieur à 64kio, dés que je les déclares dans des modules par exemple, j'atteind vite le plafond des 64Kio par module...

Ne pouvant réduire la taille de ces données en tableau, j'ai donc cherché sur le net les moyens de résoudre ce probleme .

La base de donné ? C'est un peu comme abattre une souris à coup de missile je trouve que c'est un peu exageré pour quelques centaines de Kio.

Une DLL externe pour gerer ces tableaux ? Les appels à chaque fois doivent bouffer pas mal de temps machine donc si je dois faire un traitement de donnée la dessus, ca risque de ralentir ...

Déclarer ces tableau en mode public dans plusieurs modules indépendant ? Apparement, ca fonctionnerais mais je trouve que ca n'est pas forcement très propre comme écriture.

Ou bien, est-ce qu'il y a une autre astuce que je n'aurais pas vu ?

Merci d'avance de vos réponse.

5 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 oct. 2010 à 17:38
Salut,

Tu peux toujours stocker tes données dans un fichier en ressources de ton application par exemple.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
kabak Messages postés 11 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 8 décembre 2010
26 oct. 2010 à 17:50
Je croyais que c'était plutot pour des données non modifiable comme des images, icone, son ...

Or j'aurais besoin de charger et modifier des infos dedans à partir du programme, c'est possible ?

Tu aurais un bon lien sur ce sujet ?
0
cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
26 oct. 2010 à 18:14
Salut,

Les ressources attachées à ton programme peut contenir tout type de données binaires, des fichiers en font donc parti.

Est-ce que tu as besoin de les sauvegarder (enregistrement, puis rechargement à l'ouverture du programme) ?

Si c'est le cas, il va te falloir passer par un fichier externe (rien ne t'empêche de mettre le fichier d'origine dans les ressources de ton programme et de l'extraire dès la première utilisation à la limite).

Si ce n'est pas le cas, il te suffit de charger les données de ton fichier en ressources dans tes tableaux en mémoire, et de modifier ces tableaux lors de l'exécution.
______________________________________

AVANT de poster votre message, veuillez lire, comprendre, et appliquer notre réglement
0
kabak Messages postés 11 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 8 décembre 2010
26 oct. 2010 à 19:15
Le contenu des tableau que j'aurais dans l'application sera effectivement chargé, traité/modifié puis sauvegardé dans un fichier (à la fermeture, ou pendant l'utilisation comme on le ferais avec un traitement de texte ou de photo)
La partie sauvegarde/chargement de fichier dans un tableau, j'arrive à le gerer sans trop de soucis (get/put par exemple), je l'ai déja fait sur des petits projet avec peu de donnée à stocker.

Je viens de refaire des essais, j'ai l'impression que mon probleme vient du fait que j'ai fait un tableau de dimension fixe dans une variable de type perso (la ca bloque à 64Kio de donnée par module) mais quand j'ai testé un tableau d'entier 32 bits j'atteind plusieurs méga sans soucis...

Dans le genre subtilité...
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
kabak Messages postés 11 Date d'inscription samedi 4 novembre 2000 Statut Membre Dernière intervention 8 décembre 2010
28 oct. 2010 à 23:52
Fin de l'histoire pour ceux qui serais confronté au même probleme.

Je confirme que mon probleme de mémoire venait effectivement du fait que j'utilisais un tableau à l'interieur d'un type de variable personnalisé.

Apparement, ça gène vb6 dans sa façon de stocker les données.

Au final :
Type TypePerso
    A(10) as long
    B(65000) as integer
end type

Dim MaVariable as TypePerso


risque de génerer une erreur alors que :
Type TypePerso
    A as long
    B as integer
end type

Dim MaVariable(65000) as TypePerso

va consommer bien plus de mémoire que le premier exemple (380Kio au lieu de 127) mais ne posera pas de probleme.
0
Rejoignez-nous