Convertire le collezioni

Tradotto automaticamente da Deepl

4D v16 R6 offre capacità avanzate di manipolazione delle collezioni, grazie a oltre 40 metodi da utilizzare con la notazione a oggetti. Utilizzandoli, sarete in grado di scrivere il vostro codice in modo più efficiente. Il nuovo codice è ottimo, ma abbiamo anche tenuto presente che questo nuovo codice deve integrarsi facilmente con il codice esistente. Per questo motivo abbiamo introdotto comandi dedicati per convertire le collezioni in array o stringhe e viceversa.

Questo articolo è il secondo di una serie di post sulla manipolazione delle collezioni con i metodi aggiunti in 4D v16 R6. Per approfondire, scaricate il nostro esempio di database con 12 esempi diversi che dimostrano la miriade di possibilità offerte dai metodi di raccolta!

Esempio di database: Gestire le collezioni

Ora concentriamoci sulla conversione delle collezioni e su alcuni esempi di codice.

Array e collezioni

DA COLLEZIONE AD ARRAY

Il comando COLLECTION TO ARRAY riempie una matrice con gli elementi di una collezione:

ARRAY TEXT($artFruits;0)
$fruits :=New collection("Arancia"; "Banana"; "Mela"; "Uva")

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

Lo stesso comando può essere utilizzato anche per riempire più array da un insieme di oggetti:

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

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

ARRAY DA RACCOGLIERE

In modo corrispondente, è possibile convertire un array in una collezione con ARRAY TO COLLECTION:

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

Oppure riempire una collezione di oggetti da diversi array:

$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}

manipolare stringhe con collezioni

Il comando Split string divide una stringa in un insieme di sottostringhe in base ai caratteri di separazione:

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

È inoltre possibile modificare alcuni elementi della collezione e creare una nuova stringa utilizzando il metodo join :

$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"

Sono previsti altri post sulla manipolazione delle collezioni, restate sintonizzati!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené si è unito al team di 4D Program nel novembre 2016. In qualità di Product Owner, è incaricato di scrivere le storie degli utenti e di tradurle in specifiche funzionali. Il suo ruolo è anche quello di assicurarsi che l'implementazione della funzionalità fornita soddisfi le esigenze del cliente.Dopo aver conseguito una laurea in Informatica presso il CNAM, Fabrice è entrato a far parte di una piccola società di pubblicazione di software come sviluppatore Windev. In seguito ha lavorato per diverse aziende del settore industriale e commerciale come sviluppatore Windev e web e come consulente tecnico su nuove funzionalità.