4D v14.3

文字参照記号

ホーム

 
4D v14.3
文字参照記号

文字参照記号  


 

概要  

文字参照記号: [[...]]

文字参照記号は、文字列から一文字のみを参照するのに使用します。この構文は、テキスト変数、文字列変数、および文字フィールドの任意の場所の文字を指し示します。

: 英語版の4DではMac OS上で、≤や≥記号が使用されていましたが、v13以降は[[と]]に統一されました。

文字参照記号が代入演算子 (:=) の左側にある場合、文字列内の指定した位置に文字を代入します。

以下の例は、vsNameが空の文字列ではない場合に、vsNameの最初の文字を大文字にします。

 If(Length(vsName)#0)
    vsName[[1]]:=Uppercase(vsName[[1]])
 End if

また、文字列参照記号が式に使用された場合、文字 (参照される) は1文字の文字列として返されます。

  ` 以下の例はvtTextの最後の文字が@であるかをテストします。
 If(Length(vtText)#0)
    If(Character code(Substring(vtText;Length(vtText);1))=At sign)
  ` ...
    End if
 End if
 
  ` 文字参照記号を使用し、よりシンプルに記述できます。
 If(Length(vtText)#0)
    If(Character code(vtText[[Length(vtText)]])=At sign)
  ` ...
    End if
 End if

文字列参照記号を使用する際、配列の既存の要素を使用するのと同じ要領で、文字列内の既存の文字を使用しなければなりません。例えば、文字列変数の20文字目の文字を参照する場合、この変数は必ずすくなくとも20文字以上の長さがなくてはなりません。

  • 長さが足りない場合、インタープリタモードでは構文エラーが発生します。
  • 長さが足りない場合、コンパイルモード (オプション指定なし) では、例えば文字列やテキストの終わりを越えた位置に文字を書き込んだ場合にメモリ領域を破壊するおそれがあります。
  • 長さが足りない場合、コンパイルモードで範囲チェックオプションをオンにしてある場合、例えば以下のようなコードを実行するとします。
  ` Very bad and nasty thing to do, boo!
 vsAnyText:=""
 vsAnyText[[1]]:="A"

すると、以下のようにランタイムエラーが表示されます。

例題  

以下のプロジェクトメソッドは、文字列内の各単語の先頭の文字を大文字に変換した結果の文字列を返します。

  ` Capitalize text project method
  ` Capitalize text ( Text ) -> Text
  ` Capitalize text ( Source text ) -> Capitalized text
 
 $0:=$1
 $vlLen:=Length($0)
 If($vlLen>0)
    $0[[1]]:=Uppercase($0[[1]])
    For($vlChar;1;$vlLen-1)
       If(Position($0[[$vlChar]];" !&()-{}:;<>?/,.=+*")>0)
          $0[[$vlChar+1]]:=Uppercase($0[[$vlChar+1]])
       End if
    End for
 End if

使用例は以下の通り

 ALERT(Capitalize text("hello, my name is jane doe and i'm running for president!"))

以下のように表示されます。

 
プロパティ 

プロダクト: 4D
テーマ: 文字列

 
参照 

ASCIIコード
Char
Character code
データタイプ

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v14 R3)
ランゲージリファレンス ( 4D v14 R2)
ランゲージリファレンス ( 4D v13.5)
ランゲージリファレンス ( 4D v14.3)
ランゲージリファレンス ( 4D v14 R4)

Inherited from : 文字参照記号 ( 4D v12.4)