W1014 Stringkonstante abgeschnitten damit sie in STRING[%ld] passt (Delphi)

Aus RAD Studio
Wechseln zu: Navigation, Suche

Nach oben zu Fehler- und Warnungsmeldungen (Delphi)

Eine Stringkonstante wird einer Variablen zugewiesen, die nicht groß genug ist, um den gesamten String aufnehmen zu können. Der Compiler gibt eine Warnung aus, dass das Literal entsprechend der Variablengröße abgeschnitten wurde.


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.

Die beiden Stringkonstanten werden Variablen zugewiesen, die zu kurz sind, um den gesamten String aufnehmen zu können. Der Compiler schneidet die Strings ab und führt die Zuweisung durch.


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.

Für dieses Problem gibt es zwei mögliche Lösungen, die beide in diesem Beispiel gezeigt werden. Die erste Lösung ist die Vergrößerung der Variablen, sodass sie den gesamten String aufnehmen kann. Die zweite Möglichkeit liegt darin, die Größe des Strings zu verringern, damit er von der Variablen in ihrer deklarierten Größe aufgenommen werden kann.