[Unity] Tableau à plusieurs dimensions
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
[Unity] Tableau à plusieurs dimensions
On peut déclarer des tableaux à plusieurs dimensions EX :myTable ARRAY [0..15,0..1] OF INT
C’est bien ça part d’un bon sentiment, mais comment on isole une dimension pour faire une recherche ou un tri dessus, j’ai pas trouvé la syntaxe.
C’est bien ça part d’un bon sentiment, mais comment on isole une dimension pour faire une recherche ou un tri dessus, j’ai pas trouvé la syntaxe.
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
MiGaNuTs
- Mi homme - Mi automate

- Messages : 1579
- Enregistré le : 12 nov. 2015, 21:02
- Localisation : 45 - Loiret
- Contact :
Re: [Unity] Tableau à plusieurs dimensions
Salut
Un petit bout de code ou je boucle sur les 2 dimensions d'un tableau, a sauvegarder sous exemple.xbd puis importer dans unity.
Enfin juste sous cette forme la tu devrais deja le comprendre je pense.
Un petit bout de code ou je boucle sur les 2 dimensions d'un tableau, a sauvegarder sous exemple.xbd puis importer dans unity.
Enfin juste sous cette forme la tu devrais deja le comprendre je pense.
Code : Tout sélectionner
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<FBExchangeFile>
<fileHeader company="Schneider Automation" product="Unity Pro XL V13.1 - 180823C" dateTime="date_and_time#2022-12-16-14:30:44" content="Fichier source bloc fonctions" DTDVersion="41"></fileHeader>
<contentHeader name="Projet" version="0.0.1191" dateTime="date_and_time#2022-8-31-10:51:6"></contentHeader>
<FBSource nameOfFBType="ClearInputBuffer" version="0.11" dateTime="dt#2022-06-28-14:45:47">
<comment>Efface les datas d'un buffer de com</comment>
<attribute name="TypeCodeCheckSumString" value="2467"></attribute>
<attribute name="TypeSignatureCheckSumString" value="D0F9"></attribute>
<inputParameters>
<variables name="Clear" typeName="BOOL">
<attribute name="PositionPin" value="2"></attribute>
</variables>
</inputParameters>
<inOutParameters>
<variables name="Buff" typeName="ARRAY[0..3,0..4] OF INT">
<attribute name="PositionPin" value="1"></attribute>
</variables>
</inOutParameters>
<privateLocalVariables>
<variables name="i" typeName="INT"></variables>
<variables name="j" typeName="INT"></variables>
<variables name="tmp" typeName="INT"></variables>
</privateLocalVariables>
<FBProgram name="main">
<STSource>If Clear then
tmp:=Buff[0,1]; (* Celui la il faut pas l'effacer *)
for i:=0 to 3 do
for j:=0 to 4 do
Buff[i,j]:=0;
end_for;
end_for;
Buff[0,1]:=tmp;
end_if;
</STSource>
</FBProgram>
</FBSource>
</FBExchangeFile>
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: [Unity] Tableau à plusieurs dimensions
slts,
on s'est pas compris, je cherche l'instruction , si c'est pour se le palucher à la mano, je sais faire tout seul !!!!!!!!!!!!!!!!
on s'est pas compris, je cherche l'instruction , si c'est pour se le palucher à la mano, je sais faire tout seul !!!!!!!!!!!!!!!!
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [Unity] Tableau à plusieurs dimensions
Salut antoine !
Si TABLEAU est un ARRAY [0..2,0..10] par exemple
les intructions sur les tableaux ne travillent QUE sur la dimension PREMIERE DIMENSION indiquée.
un FIND_EQ_xx TABLEAU[0] ne cherche QUE dans la première dimension !
c'est nul !!
donc ST et boucle et tout se taper... le tri c'est galère a faire et ça rend du temps (bien plus qu'un cycle automate)
Si TABLEAU est un ARRAY [0..2,0..10] par exemple
les intructions sur les tableaux ne travillent QUE sur la dimension PREMIERE DIMENSION indiquée.
un FIND_EQ_xx TABLEAU[0] ne cherche QUE dans la première dimension !
c'est nul !!
donc ST et boucle et tout se taper... le tri c'est galère a faire et ça rend du temps (bien plus qu'un cycle automate)
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: [Unity] Tableau à plusieurs dimensions
un FIND_EQ_xx (TABLEAU[0],xx) ne cherche QUE dans la première dimension !
---------
il faut tester avant
-------------
(* TABLEAU ARRAY[0..5,0..1] *)
TABLEAU[0][0]:=100;TABLEAU[0][1]:=1;
TABLEAU[1][0]:=200;TABLEAU[1][1]:=2;
TABLEAU[2][0]:=300;TABLEAU[2][1]:=3;
TABLEAU[3][0]:=400;TABLEAU[3][1]:=4;
TABLEAU[4][0]:=500;TABLEAU[4][1]:=5;
TABLEAU[5][0]:=600;TABLEAU[5][1]:=6;
XX:=FIND_EQ_ARDINT(TABLEAU[0],600);
YY:=FIND_EQ_ARDINT(TABLEAU[1],6);
if XX<0 and YY<0 then
Message:='ça marche pas';
end_if;
---------
il faut tester avant
-------------
(* TABLEAU ARRAY[0..5,0..1] *)
TABLEAU[0][0]:=100;TABLEAU[0][1]:=1;
TABLEAU[1][0]:=200;TABLEAU[1][1]:=2;
TABLEAU[2][0]:=300;TABLEAU[2][1]:=3;
TABLEAU[3][0]:=400;TABLEAU[3][1]:=4;
TABLEAU[4][0]:=500;TABLEAU[4][1]:=5;
TABLEAU[5][0]:=600;TABLEAU[5][1]:=6;
XX:=FIND_EQ_ARDINT(TABLEAU[0],600);
YY:=FIND_EQ_ARDINT(TABLEAU[1],6);
if XX<0 and YY<0 then
Message:='ça marche pas';
end_if;
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [Unity] Tableau à plusieurs dimensions
Bah j’ai testé avant d’écrire 
Avec un tableau de word et Control expert..
Avec recherche et tri.
Étrange..
Je testerai à nouveau lundi
Avec un tableau de word et Control expert..
Avec recherche et tri.
Étrange..
Je testerai à nouveau lundi
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [Unity] Tableau à plusieurs dimensions
Salut !!
J'ai écris cela : Et je confirme que !
si Id vaut 0 :
La recherche d'autre valeurs que 1,2 ou 3 provoque le résultat -1
Le tri du tableau ne se fait que sur la dimension de valeur 0 soit [0,0], [0,1], [0,2] !!
si Id vaut 1 :
La recherche d'autre valeurs que 10,20 ou 30 provoque le résultat -1
Le tri du tableau ne se fait que sur la dimension de valeur 1 soit [1,0], [1,1], [1,2] !!
si Id vaut 2 :
La recherche d'autre valeurs que 100,200 ou 300 provoque le résultat -1
Le tri du tableau ne se fait que sur la dimension de valeur 2 soit [2,0], [2,1], [2,2] !!
Ca recherche bien dans la SEULE PREMIERE DIMENSION du tableau en donnant le n° de ligne de l’occurrence trouvée.
Faut que je fasse une boucle pour chercher dans tout le tableau !
La valeur retournée reste le n° de la ligne, l'index de boucle sera la valeur de la dimension...
J'ai écris cela : Et je confirme que !
si Id vaut 0 :
La recherche d'autre valeurs que 1,2 ou 3 provoque le résultat -1
Le tri du tableau ne se fait que sur la dimension de valeur 0 soit [0,0], [0,1], [0,2] !!
si Id vaut 1 :
La recherche d'autre valeurs que 10,20 ou 30 provoque le résultat -1
Le tri du tableau ne se fait que sur la dimension de valeur 1 soit [1,0], [1,1], [1,2] !!
si Id vaut 2 :
La recherche d'autre valeurs que 100,200 ou 300 provoque le résultat -1
Le tri du tableau ne se fait que sur la dimension de valeur 2 soit [2,0], [2,1], [2,2] !!
Ca recherche bien dans la SEULE PREMIERE DIMENSION du tableau en donnant le n° de ligne de l’occurrence trouvée.
Faut que je fasse une boucle pour chercher dans tout le tableau !
La valeur retournée reste le n° de la ligne, l'index de boucle sera la valeur de la dimension...
Modifié en dernier par philou77 le 19 déc. 2022, 12:27, modifié 1 fois.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: [Unity] Tableau à plusieurs dimensions
slts,
je regarde ça,
mettre la déclaration du tableau ARRAY[.................
je regarde ça,
mettre la déclaration du tableau ARRAY[.................
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
philou77
- Mi homme - Mi automate

- Messages : 2142
- Enregistré le : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [Unity] Tableau à plusieurs dimensions
la déclaration est du type
ARRAY [0..2,0..2] of word
En même temps, c'est logique que cela ne regarde que dans une dimension, vue que tu récupères en résultat un rang unique ...
Et donc ça isole bien une dimension, comme tu voulais dans ton 1er post.
Par contre, j'ai pas trouvé pour isoler une dimension autre que la première (au vu de la structure de l'instruction, je pense que c'est pas possible sans bidouiller un peu)
ARRAY [0..2,0..2] of word
En même temps, c'est logique que cela ne regarde que dans une dimension, vue que tu récupères en résultat un rang unique ...
Et donc ça isole bien une dimension, comme tu voulais dans ton 1er post.
Par contre, j'ai pas trouvé pour isoler une dimension autre que la première (au vu de la structure de l'instruction, je pense que c'est pas possible sans bidouiller un peu)
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! 
- itasoft
- Mi homme - Mi automate

- Messages : 7807
- Enregistré le : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: [Unity] Tableau à plusieurs dimensions
slts,
ton tableau prête à confusion faire avec:
ARRAY [0..5,0..1] of word
Moi je comprends avoir 2 tableaux
Un Tableau A de taille 6 et d’index 0
Un Tableau B de taille 6 et d’index 1
Je veux faire une recherche sur le tableau A de taille 6 et une recherche sur le tableau B de taille 6
ton tableau prête à confusion faire avec:
ARRAY [0..5,0..1] of word
Moi je comprends avoir 2 tableaux
Un Tableau A de taille 6 et d’index 0
Un Tableau B de taille 6 et d’index 1
Je veux faire une recherche sur le tableau A de taille 6 et une recherche sur le tableau B de taille 6
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr