Tips

文字列の範囲オーバーフロー

日付2010/01/19
ID75975 (英語原文参照)
バージョン11.5
プラットフォームMac & Win

4D 2004以前のバージョンでは、文字列のサイズを超えるインデックスを指定することができました。

C_TEXT($myVariable)
C_TEXT($myChar)

$myVariable:="Hello World"
$myChar:=$myVariable[[13]]

この場合、$myCharには空の文字列が代入され、4Dは実行を続行しました。4D v11 SQLでは、上記のコードでシンタックスエラー53「インデックス範囲を超えています。」が返されます。このようなエラーは事前に文字列のサイズを計算するか、ON ERR CALLでトラップすることができます。