Bonjour !
Je rencontre un problème avec la manipulation d'un tableau de string à 2 dimensions : tout d'abord, en amont du code inséré, je récupère des mesures dans un tableau de string à 2 dimensions. Pour fixer les idées voici un exemple :
byte nbMes=0;
Mesure[nbMes][0]="1A";
Mesure[nbMes][1]="1B";
nbMes++;
J'ai donc sur ma première ligne les resultats d'une mesure. Cette partie fonctionne puisque j'arrive ensuite à afficher le contenu du tableau.
Le problème vient ensuite :
void filtrer()
{
byte i,j,k;
if (nbMes!=0)
{
for (i=0; i=nbMes-1; i++)
{
for (j=0; j=nbMes-1; j++)
{
if ((Mesure[i][0]==Mesure[j][1]) && (Mesure[i][1]==Mesure[j][0]))
{
if (j==nbMes-1)
{
nbMes--;
}
else
{
for (k=j; k=nbMes-2; k++)
{
Mesure[k][0]=Mesure[k+1][0];
Mesure[k][1]=Mesure[k+1][1];
}
nbMes--;
}
}
}
}
}
}
En utilisant cette fonction j'aimerais "filtrer" les mesures une fois que le tableau est remplit. J'entend par filtrer retirer les lignes qui ont en commun leur indice 0 et 1, et inversement leur indice 1 et 0, voici un exemple :
Si mon tableau est le suivant :
ligne 0 ligne 1
nbMes 1 : A1 B1
nbMes 2 : A2 B2
nbMes 3 : A1 B1
nbMes 4 : B1 A1
J'aimerais que la mesure 4 soit supprimée puisqu'elle est inversée par rapport à la mesure 1, mais tout en gardant la mesure 3 qui est la même que la mesure 1. C'est ce que j'ai essayé de faire avec la fonction filtrer(), j'ai d'abord détecté les mesures "inversement égales" puis j'ai ensuite essayé de remonter toutes les mesures d'une ligne. Mais en lancant le code avec des affichages sur la moniteur série, la deuxième boucle for tourne a l'infini sans jamais rentrer dans if... J'espère avoir été clair je suis conscient que c'est peu commun comme probleme ..
[Edit] le post est maintenant écrit entièrement