4D v16 R6 fornece capacidades avançadas de manipulação de colecções, graças a mais de 40 métodos a serem utilizados com Notação de Objectos. Ao utilizá-los, será capaz de escrever o seu código de uma forma mais eficiente. O novo código é excelente, mas também tivemos em mente que este novo código precisa de se integrar facilmente com o seu código existente. É por isso que introduzimos comandos dedicados para converter colecções em arrays ou strings, e vice-versa.
Este artigo é o segundo de uma série de posts sobre a manipulação de colecções com os métodos adicionados em 4D v16 R6. Para explorar mais, descarregue o nosso exemplo de base de dados com 12 exemplos diferentes demonstrando as inúmeras possibilidades com os métodos de colecções!
Exemplo de base de dados: Gerir colecções
Agora, concentremo-nos na conversão de colecções e em alguns exemplos de códigos.
Arrays e Colecções
COLECÇÃO PARA ARRAY
O [6]:=”CA”;”) COLLECTION TO ARRAY preenche uma matriz com elementos de uma colecção:
ARRAY TEXT($artFruits;0)
$fruits :=New collection("Laranja"; "Banana"; "Maçã"; "Uva")
// Convert the $fruits collection to a text array
COLLECTION TO ARRAY (
$fruits;$artFruits)
//$artFruits{1}="Orange"
//$artFruits{2}="Banana"
//..
O mesmo comando também pode ser usado para preencher várias matrizes a partir de uma colecção de objectos:
ARRAY TEXT($city;0)
$col :=New collection(New object("nome"; "Cleveland"; "zc";35049))
$col .push(New object("name"; "Blountsville"; "zc";35031))
// Convert $col collection to 2 arrays
COLLECTION TO ARRAY ($col;$city; "name";$zipCode; "zc")
//$city{1}="Cleveland"
//$city{2}="Blountsville"
//...
//$zipCode{1}="35049"
//$zipCode{2}="35031"
//...
MATRIZ A RECOLHER
De forma correspondente, pode converter um array para uma colecção com ARRAY TO COLLECTION:
$colFruits:=New collection
// Convert $artFruits array to a collection
ARRAY TO COLLECTION (
$colFruits;$artFruits)
//$colFruits=[Orange,Banana,Apple,Grape]
Ou encher uma colecção de objectos de várias matrizes:
$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}
manipular cordas com colecções
O Split string divide um cordão numa colecção de substratos com base em caracteres separadores:
$text:="John;Doe;120 jefferson st.;Riverside;; NJ; 08075"
$col :=Split string($text;";")
//$col:=["John","Doe","120 jefferson st.","Riverside",""," NJ"," 08075"]
Pode também modificar alguns elementos da colecção e criar uma nova corda usando o comando join método:
$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"
Ainda há mais posts para vir manipular colecções, fique atento!