Effacement tableau

Résolu
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 - 15 oct. 2011 à 13:03
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 - 16 oct. 2011 à 18:36
Bonjour,

J'efface un tableau de la manière suivante :
   For y 0 To SIZEy:  For x 0 To SIZEx
      pix(x, y) = 0
   Next x, y

Je ne souhaite pas passer par une boucle ni utiliser Redim, avant de me planter voulez-vous bien m'indiquer si le code suivant est correct :
Call FillMemory (ByVal pix(0, 0), (SIZEy + 1) * (SIZEx + 1), 0)
ou
call ZeroMemory (ByVal pix(0, 0), (SIZEy + 1) * (SIZEx + 1), 0)

et laquelle de ces 2 API convient le mieux ?

Merci d'avance et bon week-end

8 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 oct. 2011 à 13:08
Bonjour,
Pourquoi ne pas utiliser plus simplement l'instruction Erase ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
15 oct. 2011 à 14:36
Heu_

La (réponse est simple :
si VB n'a pas prévu de remplir tout un tableau numérique avec la même valeur z, c'est que le remplir de 0 n'apporte rien de moins ! Si on veut lire tableau(x,y) = z alors qu'il ,vaut 0, il suffit, à la lecture, de lui ajouter z !
Mais quelle pourrait bien être l'utilité de remplir un tableau de z ? !
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
15 oct. 2011 à 13:35
Bonjour ucfoutu,

Merci pour ta réponse rapide.
Ben oui, mais bon sang, c'est bien sûr ! comme disait le commissaire Bourel...

J'ai d'ailleurs rajouter un paramètre de trop dans ZeroMemory (le dernier 0)

Mais si je veux remplir le tableau avec la valeur 255, est-ce que le passage des paramètre est bon ?
Call FillMemory (ByVal pix(0, 0), (SIZEy + 1) * (SIZEx + 1), 255)


Merci
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
15 oct. 2011 à 14:53
Re,

Oui, c'est effectivement logique !

Merci et bon week-end

Cheyenne
0

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

Posez votre question
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
16 oct. 2011 à 15:11
Bonjour ucfoutu,

Je rebondis sur ton dernier propos :
Mais quelle pourrait bien être l'utilité de remplir un tableau de z ? !

Supposons que j'ai un tableau qui me serve à stocker les valeurs RVB d'une palette de 256 couleurs et que je veuille tout mettre en noir ou gris ou blanc d'un seul coup pour ensuite appliquer seulement x couleurs au hasard.

Cela va quand même plus vite de passer 0, 127 ou 255 d'un seul coup que de passer par une boucle.


Bon dimanche,
Cheyenne
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
16 oct. 2011 à 16:42
Mettre tout en noir, gris, ou blanc (ou de n'importe quelle couleur de ton choix) d'un seul coup revient à mettre le backcolor directement à cette couleur ! Pas besoin, pour ce faire, ni d'un tableau de valeurs, ni de Dibits, ni d'une boucle !
Rien de plus simple ...
C'est quoi, exactement, que tu cherches à faire par ce "procédé" ?


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
cs_cheyenne Messages postés 693 Date d'inscription samedi 18 mai 2002 Statut Membre Dernière intervention 17 avril 2017 2
16 oct. 2011 à 17:33
Re,

Quant au BackColor, d'accord, MAIS je travaille avec SetBitmapBits il faut donc un tableau à passer à l'API.

Je t'ai indiqué que je veux appliquer seulement x couleurs au hasard les autres étant en noir ou gris ou blanc.
J 'ai écrit par hasard pour simplifier, en fait c'est seulement dans une condition précise.
Dans mon programme de tracé de l'ensemble de Mandelbrot, (outre le cycle des couleurs) il y a un choix d'effets parmi lequel la possibilité de ne colorer que les pixels qui correspondent à une plage de magnitude donnée, les autres étant en noir (ou gris ou blanc).
La couleur indexée dans le tableau de la palette correspond à la magnitude.

Cheyenne
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
16 oct. 2011 à 18:36
C'est toi qui sais ce que tu fais et pourquoi tu le fais ainsi.
C'est ton choix.
Tu n'as alors d'autres choix, à ma connaissance, que celui d'une boucle.
0
Rejoignez-nous