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!