文字で、または、その引数の1つで指定された区切り文字によって区切られた " pieces:部分文字列" で、計測された文字列の長さを返します。
$LENGTH 関数のフォーマット:
$L[ENGTH](expr1[,expr2])
最初の式(expr1)は、$LENGTH() が "計測" の対象とする文字列を指定します。
オプションの2番目の式(expr2)は、計測を定義するデリミタを指定します; もしこの引数が欠落している場合は、$LENGTH() は、文字列の文字数を返します。
もし2番目の引数が与えられていて、かつ、空でないの文字列の場合、$LENGTHは、最初の文字列の中の2番目の文字列の出現回数のカウントより多い1つを返します; もし2番目の引数が空文字列の場合、M標準仕様では、$LENGTH() はゼロ(0)を返すことを指定します。
$LENGTH() は、2つの方法、文字と部分文字、で文字列の長さを決定するためのツールを提供しています。$LENGTH() の1つの引数が文字の数を返すにもかかわらず、$LENGTH() の2つの引数は、既存の部分文字の数を返します。
プロセスがUTF-8モードで起動する場合、$LENGTH() は、UTF-8 エンコードとして文字列の引数を解釈します。それが不正な文字を見つけた時、VIEW "BADCHAR"を有効にして、$LENGTH() は、実行時エラーを生成します。
$ZLENGTH() は、$LENGTH() の併用可能な関数です。VIEW "BADCHAR" と $ZCHSETの設定に関係なく、$ZLENGTH() は、バイトシーケンス(むしろ文字より)として文字列の引数を解釈し、バイト指向の$LENGTH() 操作を実行することができます。詳細な情報については、 “$ZLength()” を参照してください。
例:
GTM>Write $length("KINGSTON") 8 GTM>
これは、文字列 "KINGSTON" の文字の長さをWRITEするために$LENGTH() を使用しています。
例:
GTM>set x="Smith/John/M/124 Main Street/Ourtown/KA/USA" GTM>write $length(x,"/") 7 GTM>
これは、"/" で区切られていることとして、文字列内の部分文字の数をWRITEするために$LENGTH() を使用しています。
例:
GTM>write $length("/2/3/","/") 4 GTM>
これも、"/" で区切られていることとして、文字列内の部分文字の数をWRITEするために$LENGTH() を使用しています。GT.Mは、文字列内の部分文字の数( 4 を表示)取得するには、区切り文字の数(この場合は3)を1カウント追加していることに注意してください。