Einzelnen Beitrag anzeigen

kaju74

Registriert seit: 22. Okt 2003
185 Beiträge
 
#1

Records mit string[] in Delphi2009

  Alt 11. Mär 2009, 10:02
Hallo!

Ich bin gerade dabei, alle unsere Projekte auf Delphi2009 umzustellen. Dabei stoße ich derzeit sehr oft auf Compiler-Warnings die besagen, dass mit evtl. Datenverlust aufgrund einer String-Umwandlung zu rechnen ist. Das ist auch logisch, da viel mit Records nach folgendem Stil gearbeitet wird:

Delphi-Quellcode:
  TMyRecord = record
    LastName: string[32];
    FirstName: string[32];
  end;
Die expliziten Längenangaben in Klammern werden benötigt, da die Daten teilweise auch weggeschrieben werden. Wird der Record nun nach folgendem Schema gefüllt, ...

Delphi-Quellcode:
  MyRecord: TMyRecord;
  LastName, FirstName: string;
begin
  LastName := 'Hoffmann';
  FirstName := 'Marc';

  MyRecord.LastName := LastName;
  MyRecord.FirstName := FirstName;
end;
...kommen die Warnings, da ja versucht wird, ein UNICODE-String einem ShortString (= 32 Länge) zuzuweisen. Gibt es in Delphi2009 nun eine Möglichkeit AUßER einem Typcase alá "MyRecord.LastName := AnsiString(LastName)" dieses Problem eleganter zu lösen oder generell einen anderen Ansatz...??

Vielen Dank & Gruß,
kaju
  Mit Zitat antworten Zitat