Převést sbírky

Automaticky přeloženo z Deepl

4D v16 R6 poskytuje pokročilé možnosti manipulace s kolekcemi díky více než 40 metodám, které lze použít s objektovou notací. Jejich použitím budete moci psát kód efektivnějším způsobem. Nový kód je skvělý, ale také jsme pamatovali na to, že tento nový kód musí být snadno integrovatelný s vaším stávajícím kódem. Proto jsme zavedli speciální příkazy pro převod kolekcí na pole nebo řetězce a naopak.

Tento článek je druhým ze série příspěvků o manipulaci s kolekcemi pomocí metod přidaných v 4D v16 R6. Chcete-li prozkoumat další možnosti, stáhněte si náš databázový příklad s 12 různými příklady demonstrujícími nesčetné možnosti metod kolekcí!

Příklad databáze: Správa kolekcí

Nyní se zaměříme na převody kolekcí a několik příkladů kódu.

Pole a kolekce

KOLEKCE NA POLE

Stránka COLLECTION TO ARRAY naplní pole prvky z kolekce:

ARRAY TEXT($artFruits;0)
$fruits :=New collection("Orange"; "Banana"; "Apple"; "Grape")

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

Stejný příkaz lze použít také k naplnění několika polí z kolekce objektů:

ARRAY TEXT($city;0)
$col :=New collection(New object("name"; "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"
//...

POLE DO KOLEKCE

Odpovídajícím způsobem můžete pole převést na kolekci pomocí příkazu ARRAY TO COLLECTION:

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

Nebo naplňte kolekci objektů z několika polí:

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

manipulace s řetězci pomocí kolekcí

. Split string rozdělí řetězec na kolekci podřetězců na základě oddělovacích znaků:

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

Některé prvky kolekce můžete také upravit a vytvořit nový řetězec pomocí příkazu join metodu:

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

O manipulaci s kolekcemi budou ještě další příspěvky, zůstaňte s námi!

Fabrice Mainguené
- Product Owner -Fabrice Mainguené se připojil k týmu 4D Program v listopadu 2016. Jako Product Owner má na starosti psaní uživatelských příběhů, které následně převádí do funkčních specifikací. Jeho úkolem je také zajistit, aby dodaná implementace funkcí splňovala potřeby zákazníků.Po získání bakalářského titulu v oboru informatiky na CNAM nastoupil Fabrice do malé softwarové vydavatelské společnosti jako vývojář Windev. Poté pracoval pro různé společnosti v oblasti průmyslu a obchodu jako vývojář aplikací Windev a webových aplikací a také jako technický poradce pro nové funkce.