Indices() sur une collection de nombres

Bonjour,

Quelle requête formuler pour obtenir les indices d’une valeur cherchée dans une collection de nombres ?
<code 4D>
C_COLLECTION($c_col;$c_colIndexes)
$c_col:=new collection(1;0;0;1;1;0;0;0;1;1;1;1)
// Recherche des indices à 1
$c_colIndexes:=$c_col.indices("??? = 1")
// c_colIndexes = [0;3;4;8;9;10;11]

</code 4D>

Merci d’avance pour votre aide !! :pray:

NB : doc sur la fonction indices que je cherche à utiliser : https://doc.4d.com/4Dv17/4D/17.4/collectionindices.305-4883370.fe.html

Cette collection est équivalente à un tableau, pas de propriété, que des valeurs scalaires. Avec indexOf, c’est simple, on passe la valeur :
$indice:=$coll.indexOf(valeurCherchee)
Mais avec indices(), je sais pas faire sans propriété :frowning: si c’est possible, j’aimerais bien savoir.

Par contre je me demande le but : si tu veux extraire tu as de quoi ; si tu veux traiter ces items tu peux foricher ta collection :
for each(item;coll)
if(item = valeurCherchee)

end if
end for each

Avec orda : je foriche, tu foriches, il foriche, nous forichons…

Bonjour Arnaud

avec Orda
J’ai une Collection $Colxi

je veux faire une boucle qui va récupérer chaque valeur de la collection pour créer un enregistrement dans une autre Table,

jai essayé ce code mais marche pas

COLLECTION VERS TABLEAU($Colxi;arrImputation)  //27 élements
arrImputation:=1
Imputation:=arrImputation{arrImputation}  

Pour chaque ($Enregt;$Selection)
		$Entity:=ds.TempPrint.new()
		arrImputation:=1
		Imputation:=arrImputation{arrImputation}
		$Entity.imputation:=imputation
		$Entity.save()
	arrImputation:=arrImputation+1
	arrDesignation:=arrDesignation+1
Fin de chaque 

Merci de me faire partager tes lumières

Bernard

En fait de lumières, je ne suis pas dans mon domaine de compétences, là :oops:
Cela dit je commencerais par récupérer le résultat du $Entity.save() et le ferais suivre d’un TRACE pour voir ce qui se passe mal :
<code 4D>
$resultat:=$Entity.save()
TRACE //et là on regarde pourquoi ça ne marche pas dans le debogueur
</code 4D>

voir la doc>

Bonjour Bernard,

C’est exactement ce que j’ai codé en attendant.
J’avais espoir de gagner quelques lignes de code et clarifier ce dernier.

Merci pour ton aide !

Bonjour Arnaud pardon…
Je commençais ensuite à répnodre à Bernard quand je me suis rendu compte de mon erreur de prénoms… :pray:

Bonjour Bernard,

Pourquoi en fin de boucle tu indente arrImputation:=arrImputation+1 alors que juste “après” en début de boucle tu le réinitialises à nouveau à 1 ?

: Serge HAROUTUNIAN

erreur de prénoms… :pray:
vu les erreurs qu’on fait en codant sans les voir, tu mettais Bernaud ou Arnard, personne n’aurait relevé.

Bonsoir Serge

Pourquoi en fin de boucle tu indentes arrImputation:=arrImputation+1 alors que juste “après” en début de boucle tu le réinitialises à nouveau à 1 ?

c’est avant la boucle car je pense comme cela passer succesivemnet tous les éléments

Bonsoir Arnaud

j’ai bien entendu tracer après le save mais je n’ai q’un seul enregistrement qui est toujours le même

Bonsoir à TOUS

si quelqu’un à une idée

Cordialement

Bernard

: Bernard DORET

avec Orda
J’ai une Collection $Colxi

je veux faire une boucle qui va récupérer chaque valeur de la
collection pour créer un enregistrement dans une autre Table,

En supposant que $Colxi soit une simple collection de texte, je testerais

<code 4D>
C_TEXTE($Element)
Pour chaque ($Element;$Colxi)
$Entity:=ds.TempPrint.new()
$Entity.imputation:=$Element
$Entity.save()
Fin de chaque

</code 4D>

: Manuel PIQUET

Pour chaque ($Element;$Colxi)
les pourchaqueurs parlent aux forichiens…

https://www.youtube.com/watch?v=3BfcBSEqDIkEt pendant ce temps là, les Shadoks pompaient…> :mrgreen: