W1014 Constante chaîne tronquée pour tenir dans STRING[%ld] (Delphi)

De RAD Studio
Aller à : navigation, rechercher

Remonter à Messages d'erreur et d'avertissement (Delphi)

Une constante chaîne est affectée à une variable qui n'est pas assez grande pour contenir la chaîne entière. Le compilateur vous alerte sur le fait qu'il tronque le littéral pour pouvoir rentrer dans la variable. -W


program Produce;
(*$WARNINGS ON*)

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

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


  var
    ProgramTitle : TitleString;
    ProgramSubtitle : SubtitleString;

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

Les deux constantes chaîne sont affectées aux variable qui sont trop courtes pour contenir la chaîne entière. Le compilateur tronquera les chaînes et effectuera l'affectation.


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.

Deux solutions existent pour ce problème, qui figurent toutes les deux dans cet exemple. La première solution est d'augmenter la taille de la variable pour gérer la chaîne. La deuxième est de réduire la taille de la chaîne pour qu'elle rentre dans la taille déclarée de la variable.