コレクションを変換する

Deeplからの自動翻訳

4D v16 R6では、オブジェクト記法で使用する40以上のメソッドによりコレクションを操作するための高度な機能を提供します。これらを使用することで、より効率的な方法でコードを書くことができるようになります。新しいコードは素晴らしいですが、この新しいコードは既存のコードと簡単に統合する必要があることも念頭に置いています。このため、コレクションを配列や文字列に変換したり、その逆を行う専用のコマンドを導入しました。

この記事は、4D v16 R6で追加されたメソッドでコレクションを操作するシリーズの2つ目です。さらに詳しく知りたい方は、コレクションメソッドの無数の可能性を示す12の例を含むデータベースの例をダウンロードしてください。

データベースの例コレクションを管理する

それでは、コレクションの変換とコード例について説明します。

配列とコレクション

コレクションを配列に変換する

この COLLECTION TO ARRAYコマンドは、コレクションから要素を取り出して配列に格納します。

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"
//..

同じコマンドで、オブジェクトのコレクションから複数の配列を埋めることもできる。

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"
//...

配列からコレクションへ

また、配列をコレクションに変換するコマンドもあります。 ARRAY TO COLLECTION:

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

あるいは、複数の配列からオブジェクトのコレクションを埋める。

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

コレクションで文字列を操作する

でコレクションに変換できます。 Split stringコマンドは、文字列をセパレータ文字に基づく部分文字列のコレクションに分割します。

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

また、いくつかのコレクション要素を変更したり、新しい文字列を作成するには 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"

コレクションを操作する方法については、まだ他にも記事があります。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。