Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

$LISTFROMSTRING (ObjectScript)

文字列からリストを作成します。

Synopsis

$LISTFROMSTRING(string,delimiter,flag)
$LFS(string,delimiter,flag)

引数

引数 説明
string InterSystems IRIS リストに変換される文字列。この文字列には、delimiter によって区切られた 1 つ以上の要素が含まれます。既定では、delimiter は作成される InterSystems IRIS リストの構成要素になりません。
delimiter オプションstring 内の部分文字列 (要素) を分離するために使用される区切り文字。delimiter は、引用符付きの文字列として指定します。delimiter を指定しない場合、既定はコンマ (,) 文字です。
flag オプション — 2 ビットのバイナリ・ビット・フラグ。利用可能な値は、0 (00)、1 (01)、2 (10)、および 3 (11) です。既定値は 0 です。

概要

$LISTFROMSTRING は、各要素が区切られた引用符付き文字列を受け取り、リストを返します。リストは、区切り文字列を使用しないエンコード形式でデータを表します。したがって、リストには可能な文字をすべて含めることができますが、ビット文字列データに最適です。リストは、ObjectScript $LIST 関数を使用して操作されます。

ZWRITE コマンドを使用すると、エンコードされていない形式でリストを表示できます。

引数

string

文字列リテラル (引用符で囲まれた)、数値、あるいは文字列に評価される変数または式。この文字列には、delimiter によって区切られた 1 つ以上の部分文字列 (要素) を含めることができます。既定では、delimiter 文字は出力リストにありません。したがって、文字列データ要素には delimiter 文字 (文字列) を使用できません。flag 引数の使用に関する以下のセクションでの説明のとおり、flag の値を 2 または 3 に設定した特定の条件下では、出力リストの文字列データ要素に delimiter 文字列を使用できます。

delimiter

入力文字列内の部分文字列を区切るのに使用される文字 (または文字列)。(引用符で囲まれた) 数値または文字列リテラル、変数名、文字列に評価される式を指定できます。

通常、区切り文字には、文字列データ内で決して使用されることがなく、部分文字列を区切る文字としてのみ使用される特定の文字が設定されます。区切り文字には、複数文字から成る文字列を指定することもできますが、それを構成する個々の文字は文字列データ内で使用できます。

delimiter を指定しない場合、既定の区切り文字はコンマ (,) です。NULL 文字列 ("") は区切り文字として指定できません。NULL 文字列を指定すると、<ILLEGAL VALUE> エラーになります。

flag

2 ビットのバイナリ・ビット・フラグ。

  • 1 ビットは、string 内で隣接する区切り文字の処理方法を指定します。これらは、エンコードされた戻りリストで省略された要素に対応します。0 は、省略された要素を空の文字列 ("") として表します。1 は、省略された要素を NULL 要素として表します。これを、以下の例に示します。

      SET colorstr="Red,,Blue"
      ZWRITE $LISTFROMSTRING(colorstr,,0)
        //  $lb("Red","","Blue")
      ZWRITE $LISTFROMSTRING(colorstr,,1)
        //  $lb("Red",,"Blue")
    
  • 2 ビットは、string 内の引用符の処理方法を指定します。$LISTFROMSTRING は、string 内の区切られたサブ文字列を引用符付きの文字列要素として返します。既定では、区切った部分文字列に使用している引用符は、リストの中でその文字列に対応する文字列データ要素で保持されます。flag を 2 または 3 に設定すると、区切った部分文字列の先頭と末尾にある引用符は削除され、その部分文字列の中で使用している区切り文字と区切り文字列は区切り文字として扱われません。これらの文字は、リストの中で元の文字列に対応する文字列データ要素の一部として扱われます。これを、以下の例に示します。

      SET qstr="abc,3,""New York, New York"",004.0,""5"",""+0.600"""
      ZWRITE $LISTFROMSTRING(qstr,,0)
        //  $lb("abc","3","""New York"," New York","004.0","""5""","""+0.600""")
      ZWRITE $LISTFROMSTRING(qstr,,2)
        //  $lb("abc","3","New York, New York","004.0","5","+0.600")
    

以下の例は、空白スペースで区切られた名前の文字列を受け取り、リストを作成します。

   SET namestring="Deborah Noah Martha Bowie"
   SET namelist=$LISTFROMSTRING(namestring," ")
   WRITE !,"1st element: ",$LIST(namelist,1)
   WRITE !,"2nd element: ",$LIST(namelist,2)
   WRITE !,"3rd element: ",$LIST(namelist,3)

関連項目

FeedbackOpens in a new tab