W1014 string[%ld] に収まるように文字列定数が丸められました (Delphi)

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

エラーと警告のメッセージ(Delphi) への移動

文字列定数を変数に代入しようとしましたが,変数の大きさがその文字列全体を入れるには十分ではありません。コンパイラは変数に収まるようにリテラルを切り捨てたことを警告しています。


program Produce;
(*$WARNINGS ON*)

  const
    Title = 'Super Galactic Invaders with Turbo Gungla Sticks';
    Subtitle = 'Copyright (c) 2002 by Frank Borland';

  type
    TitleString = String[25];
    SubtitleString = String[18];


  var
    ProgramTitle : TitleString;
    ProgramSubtitle : SubtitleString;

begin
  ProgramTitle := Title;
  ProgramSubtitle := Subtitle;
end.

{ 2 つの文字列定数が変数へ代入されるが,それらの変数は文字列全体を入れるには短すぎる。コンパイラは文字列の末尾を切り捨てて代入を実行する }


program Solve;
(*$WARNINGS ON*)

  const
    Title = 'Super Galactic Invaders with Turbo Gungla Sticks';
    Subtitle = 'Copyright (c) 2002';

  type
    TitleString = String[55];
    SubtitleString = String[18];


  var
    ProgramTitle : TitleString;
    ProgramSubtitle : SubtitleString;

begin
  ProgramTitle := Title;
  ProgramSubtitle := Subtitle;
end.

{ この問題の解決方法は 2 つあり,この例では両方を示す。最初の解決方法では文字列を保持する変数のサイズを大きくする。2 番めの解決方法では宣言した変数サイズに合わせて文字列のサイズを小さくする }