E2198 長い文字列に対して %s は使用できません (Delphi)
エラーと警告のメッセージ(Delphi) への移動
長い文字列に対して標準関数 High/Low を使用することはできません。ただし,High/Low を旧形式の短い文字列に適用することはできます。
長い文字列のサイズは動的に決定されるので,長い文字列に使用できるような High/Low 関数と同様の関数もありません。
このエラーは,短い文字列しか使用できなかった 16 ビットアプリケーションを移植しているときなどに発生します。その場合には,$H コマンドラインスイッチ(または長形式の $LONGSTRINGS 指令)を使って長い文字列を無効にすれば,エラーは出なくなります。
High/Low を文字列パラメータに対して適用しており,同時に長い文字列を使用する場合は,そのパラメータ型をオープン文字列パラメータに変更してください。
program Produce; var i : Integer; s : String; begin s := 'Hello Developers of the World'; i := HIGH(s); end.
{ ここでは,標準関数 High を長い文字列の変数に適用しようとしている。これは行えない }
(*$LONGSTRINGS OFF*) program Solve; var i : Integer; s : String; begin s := 'Hello Developers of the World'; i := HIGH(s); end.
{ 長い文字列の使用を禁止すれば,文字列変数への High の適用が可能になる }