Effacement tableau [Résolu]

Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
- - Dernière réponse : jmfmarques
Messages postés
7668
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
Afficher la suite 

8 réponses

Meilleure réponse
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 135 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 135 internautes nous ont dit merci ce mois-ci

Commenter la réponse de ucfoutu
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
0
Merci
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
Commenter la réponse de cs_cheyenne
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
0
Merci
Re,

Oui, c'est effectivement logique !

Merci et bon week-end

Cheyenne
Commenter la réponse de cs_cheyenne
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
0
Merci
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
Commenter la réponse de cs_cheyenne
Messages postés
18039
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
209
0
Merci
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
Commenter la réponse de ucfoutu
Messages postés
693
Date d'inscription
samedi 18 mai 2002
Statut
Membre
Dernière intervention
17 avril 2017
2
0
Merci
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
Commenter la réponse de cs_cheyenne
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
18
0
Merci
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.
Commenter la réponse de jmfmarques