E2198 長い文字列に対して %s は使用できません (Delphi)

提供: RAD Studio
移動先: 案内検索

エラーと警告のメッセージ(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 の適用が可能になる }