Convertir les collections

Traduit automatiquement de Deepl

4D v16 R6 offre des capacités avancées pour manipuler les collections, grâce à plus de 40 méthodes à utiliser avec la Notation Objet. En les utilisant, vous serez en mesure d’écrire votre code de manière plus efficace. Du nouveau code, c’est bien, mais nous avons aussi gardé à l’esprit que ce nouveau code doit s ‘intégrer facilement à votre code existant. C’est pourquoi nous avons introduit des commandes dédiées pour convertir les collections en tableaux ou en chaînes de caractères, et vice-versa.

Cet article est le deuxième d’une série d’articles sur la manipulation des collections avec les méthodes ajoutées dans 4D v16 R6. Pour aller plus loin, téléchargez notre exemple de base de données avec 12 exemples différents démontrant la myriade de possibilités offertes par les méthodes de collection !

Exemple de base de données : Gérer les collections

Maintenant, concentrons-nous sur la conversion des collections et sur quelques exemples de code.

Tableaux et collections

COLLECTION VERS TABLEAU

La commande COLLECTION TO ARRAY remplit un tableau avec les éléments d’une collection :

ARRAY TEXT($artFruits; 0 )
$fruits :=New collection("Orange" ; "Banane" ; "Pomme" ; "Raisin")

// Convert the $fruits collection to a text array
COLLECTION TO ARRAY ($fruits;$artFruits)
//$artFruits{1}="Orange"
//$artFruits{2}="Banana"
//..

La même commande peut également être utilisée pour remplir plusieurs tableaux à partir d’une collection d’objets :

ARRAY TEXT($city; 0 )
$col :=New collection(New object("nom" ; "Cleveland" ; "zc";35049))
$col .push(New object("nom" ; "Blountsville" ; "zc";35031))

// Convert $col collection to 2 arrays
COLLECTION TO ARRAY ($col;$city; "nom" ;$zipCode; "zc")
//$city{1}="Cleveland"
//$city{2}="Blountsville"
//...
//$zipCode{1}="35049"
//$zipCode{2}="35031"
//...

DU TABLEAU À LA COLLECTION

De la même manière, vous pouvez convertir un tableau en une collection avec ARRAY TO COLLECTION:

$colFruits:=New collection
// Convert $artFruits array to a collection
ARRAY TO COLLECTION
($colFruits;$artFruits)
//$colFruits=[Orange,Banana,Apple,Grape]

Ou remplir une collection d’objets à partir de plusieurs tableaux :

$colCity:=New collection
// Convert $city and $zipCode arrays to a collection of objects
ARRAY TO COLLECTION ($colCity;$city; "cityName" ;$zipCode; "Zip" )
//$colCity[0]={cityName:Cleveland,Zip:35049}

//$colCity[1]={cityName:Blountsville,Zip:35031}

manipuler des chaînes de caractères avec des collections

La commande Split string divise une chaîne de caractères en une collection de sous-chaînes basées sur des caractères séparateurs :

$text:= "John;Doe;120 jefferson st.;Riverside;; ; NJ ; 08075"
$col :=Split string($text; " ;")
//$col:=["John","Doe","120 jefferson st.","Riverside",""," NJ"," 08075"]

Vous pouvez également modifier certains éléments de la collection et créer une nouvelle chaîne de caractères à l’aide de la méthode join méthode :

$col[2]:="95 S Market St #240"
$col [3]:="San Jose"
$col [5]:="CA"
$col [6]:="95113"
$text :=$col.join(" ;")
//$text="John;Doe;95 S Market St #240;San Jose;;CA;95113"

Il y a encore d’autres articles à venir sur la manipulation des collections, restez à l’écoute !

Fabrice Mainguené
- Product Owner -Fabrice Mainguené a rejoint l'équipe du programme 4D en novembre 2016. En tant que Product Owner, il est en charge de rédiger les user stories puis de les traduire en spécifications fonctionnelles. Son rôle est également de s'assurer que l'implémentation de la fonctionnalité livrée répond au besoin du client.Après avoir obtenu une licence en informatique au CNAM, Fabrice a rejoint une petite société d'édition de logiciels en tant que développeur Windev. Il a ensuite travaillé pour différentes entreprises dans les domaines de l'industrie et du commerce en tant que développeur Windev et web ainsi que conseiller technique sur les nouvelles fonctionnalités.