文字列
String ( expression {; format {; addTime}} ) : Text
String ( expression ; base ) : Text
引数 | 型 | 説明 | |
---|---|---|---|
式 | 式 | → | 文字列式を返したい式 (実数、整数、倍長整数、日付、時間、文字列、 テキスト、ブール、未定義、Null を指定可能) |
format | Integer, Text | → | 表示フォーマット |
addTime | Time | → | expressionが日付の時、追加する時間 |
base | Integer | → | 式が数値の場合に、基数を表す2 から36 までの値 |
戻り値 | Text | ← | 式の文字列の形式 |
履歴
リリース | 内容 |
---|---|
21 | base 引数のサポート |
説明
String コマンドは、expression に渡した数値、日付、時間、文字列、またはブールを文字列に変換します。
引数を何も渡さなかった場合、適切なデフォルトの形式の文字列で返されます。 format を指定すると、結果の文字列は指定した形式になります。
オプションのaddTime 引数は、日付に時間を複合フォーマットで追加します。 この引数は expression 引数が日付型の時にのみ使用できます (後述)。
オプションの base 引数は、数値型のexpression に対してのみ使用可能で、この場合指定した奇数で数値を返します(以下参照)。
数値式
String コマンドを数値型の expression 引数(実数、整数、倍長整数) に対して使用した場合、二つのシンタックスを使用することができます:
- String(number{;format})
- String(number;base)
String 関数は、コンパイルモードにおいて"64 bit整数" 型フィールドとは互換性がありません。
String(number{;format})
オプションの format 引数を渡さなかった場合、文字列はデフォルトの数値フォーマットで返されます。
フォーマットは、フォームの数値フォーマット と同じ方法で指定します。 format 引数には、カスタムのフォーマットの名前を渡すことができます。 カスタムのフォーマット名は |
で始めなければなりません。 以下はその一例です:
Example | 戻り値 | コメント |
---|---|---|
String(2^15) | "32768" | デフォルトのフォーマット |
String(2^15;"###,##0 Inhabitants") | "32,768 Inhabitants" | |
String(1/3;"##0.00000") | "0.33333" | |
String(1/3) | "0.3333333333333" | デフォルトのフォーマット(*) |
String(Arctan(1)*4) | "3.14159265359" | デフォルトのフォーマット(*) |
String(Arctan(1)*4;"##0.00") | "3.14" | |
String(-1;"&x") | "0xFFFFFFFF" | |
String(-1;"&$") | "$FFFFFFFF" | |
String(0 ?+ 7;"&x") | "0x0080" | |
String(0 ?+ 7;"&$") | "$80" | |
String(0 ?+ 14;"&x") | "0x4000" | |
String(0 ?+ 14;"&$") | "$4000" | |
String(50.3;"&xml") | "50.3" | 常に "." を小数点として使用 |
String(Num(1=1);"True;;False") | "true" | |
String(Num(1=2);"True;;False") | "false" | |
String(Log(-1)) | "" | 数値ではありません |
String(1/0) | "INF" | 正の無限の数値 |
String(-1/0) | "-INF" | 負の無限の数値 |
(*) 実数をテキストへと変換するアルゴリズムは、有効数字13 桁に基づいて計算されています。詳細はSET REAL COMPARISON LEVEL
を参照してください。
String(number;base)
base 引数(整数値) を使用すると、特定のモードがトリガーされます。このモードでは返される数値の基数(底)を渡します。 具体的には、このシンタックスを使用することで数値を16進数の文字列へと変換することができます。
base 引数には、expression 引数の基数の数字を渡します。 ここには2 から36 までの任意の整数値を渡すことができます。
base 引数に0 を渡した場合、コマンドはexpression 引数の値に応じて基数を決定します。 expression の値が"0x" で始まる場合、16 進数が使用されます。 それ以外の場合、10 進数が使用されます。
- このシンタックスは基数の取扱に関する
toString
EcmaScript 仕様 に厳密に従います。 - base=10 のシンタックスを使用した場合、 base 引数を使用しなかったシンタックスと全く同じ結果は返しません。 例えば、指定された数値が数字でなかった場合、 "Nan" の文字列が返されます。
Example | 戻り値 | コメント |
---|---|---|
String(10;2) | "1010" | 2進数の文字列 |
String(-10;2) | "-1010" | 2進数の文字列(負の数) |
String(254;16) | "fe" | 16進数の文字列 |
String(-16523461; 16) | "-fc20c5" | 16進数の文字列(負の数) |
String(Log(-1); 10) | "NaN" | 数値ではありません |
String(1/0; 10) | "NaN" | 数値ではありません |
String(-1/0; 10) | "NaN" | 数値ではありません |
指定された数値が負の値であった場合、その符号は保持されます。 これは基数が2 の場合も保持されます。返された文字列は > N となり、- 記号から始まる正の数値の2進数表現となります。
日付式
expression 引数が日付式で、 format 引数を省略した場合、文字列はシステムで定義されたデフォルトのフォーマットを使用して返されます。
それ以外の場合、 format 引数には、以下のものを渡すことができます:
- Date Display Formats テーマ内の、以下の定数を通して利用可能な、定義済みのフォーマット:
定数 | 値 | 説明 |
---|---|---|
Blank if null date | 100 | フォーマット定数に追加されます。 日付値がNull 値であった場合、4D は0 ではなく空の文字列を返さなければならないことを意味します。 |
Date RFC 1123 | 10 | Fri, 10 Sep 2010 13:07:20 GMT (注記参照) |
Internal date abbreviated | 6 | Dec 29, 2006 |
Internal date long | 5 | December 29, 2006 |
Internal date short | 7 | 12/29/2006 |
Internal date short special | 4 | 12/29/06 (しかし 12/29/1896 あるいは 12/29/2096) |
ISO Date | 8 | 2006-12-29T00:00:00 (注記参照) |
ISO Date GMT | 9 | 2010-09-13T16:11:53Z (注記参照) |
System date abbreviated | 2 | Sun, Dec 29, 2006 |
System date long | 3 | Sunday, December 29, 2006 |
System date short | 1 | 12/29/2006 |
例:
$vsResult:=String(!2023-11-27!) //"11/27/2023"
$vsResult:=String(!2023-11-27!;Internal date long) // "November 27, 2023"
$vsResult:=String(!2023-11-27!;ISO Date GMT) // フランス時間では "2023-11-26T23:00:00Z"
- あるいはパターンに基づいてビルドされたカスタマイズされたフォーマット (文字列値)
例:
$vsResult:=String(!2023-11-27!;"EEEE d MMMM y GGGG") //"Monday 27 November 2023 Anno Domini"
$vsResult:=String(!2023-11-27!;"E dd/MM/yyyy zzzz") // フランス時間では "Mon 27/11/2023 GMT+01:00"
フォーマットはシステム設定に応じて異なる場合があります。
addTime 引数
日付値を処理する場合、 addTime 引数に時間を渡すこともできます。 この引数を使用すれば日付と時間を合成し、標準形式のタイムスタンプを生成することができます (ISO Date、ISO Date GMT、Date RFC 1123定数)。 これらのフォーマットは特にxml やWeb 処理のコンテキストにおいて特に有用です。 addTime 引数は、 expression 引数が日付の場合にのみ使用可能です。
この引数は定義済みフォーマットとパターンに基づいた日付フォーマットの両方に対して使用できます。 例:
$dateTime:=String(!2010-09-09!;ISO date GMT;Current time) //"2010-09-09T08:30:41Z"
$dateTime2:=String(!2023-11-27!;"E dd/MM/yyyy 'at' hh:mm aa O";?11:15:00?) //"Mon 27/11/2023 at 11:15 AM GMT+1"
日付/時間複合フォーマットに関する注記:
- ISO Date GMTフォーマットはISO8601標準に対応します。日付と時間を含みタイムゾーン (GMT) を考慮します。
$mydate:=String(Current date;ISO Date GMT;Current time) // 例えば、2010-09-13T16:11:53Z を返します
上記の例の最後の"Z"はGMTフォーマットを表します。
addTime 引数を渡さなかった場合、このコマンドはローカルタイムの午前0時をGMT 標準時で表現したものを返します。そのためローカルの時間帯に応じて日付が前後することがあります:
$mydate:=String(!13/09/2010!;ISO Date GMT) // フランスでは 2010-09-12T22:00:00Z を返す
- ISO DateフォーマットはISO Date GMTフォーマットと同様に日付と時間を含みますが、タイムゾーンを考慮しません。 当初よりこのフォーマットはISO8601標準に準拠しておらず、非常に特殊な目的のために予約されたものです。
$mydate:=String(!13/09/2010!;ISO Date) // タイムゾーンに関係なく 2010-09-13T00:00:00 を返す
$mydate:=String(Current date;ISO Date;Current time) // 2010-09-13T18:11:53 を返す
- Date RFC 1123フォーマットは日付と時間の組み合わせをRFC 822 と1123 で定義された標準に基づきフォーマットします。 このフォーマットはたとえばHTTPヘッダーでcookieの有効期限を設定する際に必要となります。
$mydate:=String(Current date;Date RFC 1123;Current time) // 例えば Fri, 10 Sep 2010 13:07:20 GMT を返します
表現される日時は、タイムゾーンが考慮されるためローカルのタイムゾーンにより日付が前後にずれることになります。 日付のみを渡すと、コマンドはローカルタイムの00:00をGMT時間で表現して返します:
$mydate:=String(!2010-09-09!;Date RFC 1123) // Wed, 08 Sep 2010 22:00:00 GMT を返します
時間式
expression が時間式で、format 引数を省略した場合、デフォルトのHH:MM:SS フォーマットを使用した文字列が渡されます。
それ以外の場合、 format 引数には、以下のものを渡すことができます:
- Time Display Formats テーマ内の、以下の定数(倍長整数値)を通して利用可能な定義済みフォーマット:
定数 | 値 | 説明 |
---|---|---|
Blank if null time | 100 | フォーマット定数に追加されます。 日付値がNull 値であった場合、4D は0 ではなく空の文字列を返さなければならないことを意味します。 |
HH MM | 2 | 01:02 |
HH MM AM PM | 5 | 1:02 AM |
HH MM SS | 1 | 01:02:03 |
Hour min | 4 | 1 時 2 分 |
Hour min sec | 3 | 1 時 2 分 3 秒 |
ISO time | 8 | 0000-00-00T01:02:03. フォーマットはISO8601標準に対応し、理論的には日付と時間を含みます。 このフォーマットは日付と時間の複合をサポートしないため、日付部分は0で埋められます。 このフォーマットはローカル時間を表します。 |
Min sec | 7 | 62 分 3 秒 |
MM SS | 6 | 62:03 |
System time long | 11 | 1:02:03 AM HNEC (mac のみ) |
System time long abbreviated | 10 | 1:02:03 (mac のみ) |
System time short | 9 | 01:02:03 |
例:
$vsResult:=String(?17:30:45?;HH MM AM PM) //"5:30 PM"
$vsResult:=String(?17:30:45?;Hour Min Sec) //"17 時 30 分 45 秒 "
- あるいはパターンに基づいてビルドされたカスタマイズされたフォーマット (文字列値)
例:
$vsResult:=String(?17:30:45?;"hh:mm aa O") //"05:30 PM GMT+1"
$vsResult:=String(?17:30:45?;"'It is' K a") //"It is 5 PM"
文字列式
expression が文字列またはテキスト型の場合、コマンドは引数として渡されたものと同じ値を返します。 これは特にポインタを使用している汎用プログラミングで有効です。
この場合、format 引数は渡されても無視されます。
ブール式
expression がブール 型の場合、コマンドはアプリケーションのランゲージに即した文字列の "True" または"False"を返します(例えば、4Dのフランス語バージョンでは、“Vrai”または“Faux”)。
この場合、format 引数は渡されても無視されます。
未定義式
expression が未定義に評価される場合、コマンドは空の文字列を返します。 これは式の結果(オブジェクト属性など)が、たとえ未定義であっても文字列として返されることを期待したい場合などに有効です。
Null 式
expression がNull に評価される場合、コマンドは"null"の文字列を返します。 これはある式(例: オブジェク属性)の結果が、nullである可能性があるが、文字列として返されることを期待する場合に有用です。
参照
Bool
Date
Num
Time string
Timestamp
プロパティ
コマンド番号 | 10 |
スレッドセーフ | ✓ |