ここは旧式の4DドキュメントWebサイトです。最新のアップデートされたドキュメントを読むには新サイトをご利用下さい→ developer.4d.com

ホーム

 
4D v20 R7
文字参照記号

文字参照記号  


 

概要  

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

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

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

以下の例は、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!"))

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



参照 

Char
Character code

 
プロパティ 

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

 
ページの目次 
 
履歴 

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v20 R7)