Combien de variables = 0 ?

[Résolu]
Signaler
Messages postés
34
Date d'inscription
samedi 31 juillet 2010
Statut
Membre
Dernière intervention
26 mars 2013
-
Messages postés
34
Date d'inscription
samedi 31 juillet 2010
Statut
Membre
Dernière intervention
26 mars 2013
-
Salut !

J'ai un petit soucis. J'aimerais trouver une fonction qui me permettrait de calculer combien de mes variables sont = à 0. Est-ce que quelqu'un a une idée ? J'aimerais vous transmettre mon code, mais je prends mes variables d'un fichier externe .xml et mon codage est vraiment compliqué. Vous pouvez rester général sans problème ! Merci d'avance !

4 réponses

Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
...seulement pour ceux placés avant r41, soit r21, r22, r26 et r27. ...
dans ce cas il suffit de ne pas récupérer les autres!

je crois que l'on peut créer un "array".
c'est exactement l'idée pour faire une boucle.
pourquoi ne pas recupérer directement les valeurs dans un array plutôt que dans var tr21, var tr22 etc...

tout cela pourrait ce traduire par
var oPart = xmlDoc.getElementsByTagName('particulier');
//-- recuperation du bon participant
oPart = oPart[oPart.length-1];
//-- tableau des attributs interessants
var tAttrib = ["r21","r22","r26","r27"];//,"r41","r42","r55","r54","r43"];
var iCount = 0; // le compteur
var iVal;       // la valeur recuperee
//-- recherche dans les attributs interessants
for(var i 0, nb tAttrib.length; i<nb;i++){
  //-- recup. de la valeur
  iVal= oPart.getAttribute(tAttrib[i]);
  //-- test si 0
  if( iVal == 0){
    //-- incremente compteur
    iCount++;
  }
}
//-- affiche resultat
alert( iCount);

tu y étais presque...
;O)
Messages postés
3426
Date d'inscription
lundi 26 décembre 2005
Statut
Membre
Dernière intervention
14 janvier 2011
18
Bonjour,
// Initialisation du compteur
COMPTEUR =  0
// comment Parcours de toutes les valeurs
POUR TOUTES les Valeurs FAIRE
  SI Valeur EGALE 0 ALORS
    Incrémentation COMPTEUR
  SINON
    On ne fait rien
  FIN SI
FIN POUR
Affichage COMPTEUR

;O)
Messages postés
34
Date d'inscription
samedi 31 juillet 2010
Statut
Membre
Dernière intervention
26 mars 2013
1
Merci !

La réponse est excellente ! J'ai par contre un petit soucis à récupérer tous mes attributs dans un meme groupe, je vais donc donner un peu de code, ce sera plus simple

Voici mon fichier xml (particulier2011.xml) :
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<factures>





</factures>


//je récupère mon fichier xml

var xmlDoc=null;
if (window.XMLHttpRequest)
  { xhttp=new XMLHttpRequest();}

else // Internet Explorer 5/6
  { xhttp=new ActiveXObject("Microsoft.XMLHTTP");}

xhttp.open("GET","commerce/particulier2011.xml",false);
xhttp.send("");
xmlDoc=xhttp.responseXML;

var x=xmlDoc.getElementsByTagName("particulier");


//et voici comment je récupère chacun de mes attributs individuellement
var tr21 = x[x.length-1].getAttribute("r21");
var tr22 = x[x.length-1].getAttribute("r22");
var tr26 = x[x.length-1].getAttribute("r26");
var tr27 = x[x.length-1].getAttribute("r27");
var tr41 = x[x.length-1].getAttribute("r41");
var tr42 = x[x.length-1].getAttribute("r42");
var tr55 = x[x.length-1].getAttribute("r55");
var tr54 = x[x.length-1].getAttribute("r54");
var tr43 = x[x.length-1].getAttribute("r43");

//je m'intéresse seulement au dernier groupe enregistré (le 6 jan 2001)


Je rajouterais meme un niveau de difficulté : j'aimerais savoir combien de variables sont égal à 0 seulement pour ceux placés avant r41, soit r21, r22, r26 et r27. Je ne pense pas qu'il y est de moyen de déterminer ceux placés avant, mais je crois que l'on peut créer un "array". Mais je n'ai aucune idée comment !

Je suis désolé d'avoir compliqué les choses, mais ton aide m'est très utile ! Merci encore !
Messages postés
34
Date d'inscription
samedi 31 juillet 2010
Statut
Membre
Dernière intervention
26 mars 2013
1
Wow ! C'est parfait ! Il y a quelques subtilités que je ne connaissais pas, j'en prends bonne note ! Merci encore !