Entwickler-Ecke

Programmierwerkzeuge - Strings in Delphi 2007 und XE7


Tastaro - Do 09.10.14 08:24
Titel: Strings in Delphi 2007 und XE7
Wir setzten zur Zeit noch immer Delphi 2007 ein. Nicht zuletzt wegen den (Unicode-) Strings.
Hierzu habe ich eine Frage: Wenn ich von Delphi 2007 auf XE 7 umsteigen würde, was müsste ich tun um weiterhin mit Ansistrings arbeiten zu können? Gibt es einen Compilerschalter, der XE 7 dazu bringt das Schlüsselwort "string" als Ansistring zu behandeln, oder müsste ich alle "string" durch "ansistring" ersetzen? Oder gibt es noch weitere Möglichkeiten?


WasWeißDennIch - Do 09.10.14 09:12

Einen Compilerschalter gibt es dafür nicht. Du kannst also entweder alle Strings als AnsiStrings, Chars als AnsiChars und PChars als PAnsiChars deklarieren (und nebenbei alle evtl. API-Aufrufe, die mit Zeichen oder Zeichenketten arbeiten, explizit auf die Ansi-Variante umstellen), oder einfach mit Unicode arbeiten. Was dabei zu beachten ist, hat Emba z.B. hier beschrieben: http://docwiki.embarcadero.com/RADStudio/XE6/de/Anwendungen_f%C3%BCr_Unicode_anpassen


Tastaro - Do 09.10.14 09:20

oO. Danke für die Antwort. Ich denke wir werden noch etwas länger mit Delphi 2007 arbeiten. :)


jaenicke - Do 09.10.14 11:03

Wobei es nur relativ wenige Fälle gibt, in denen es nötig ist mit AnsiStrings zu arbeiten. Meistens braucht man das nicht.

Und bei API Aufrufen ist es ohnehin falsch, wenn man z.B. PAnsiChar aber nicht die ...A Variante der API nutzt. Nutzt man aber PChar und die Variante ohne A am Ende, gibt es auch mit Unicode normalerweise keine Probleme...

Wo konkret liegt denn der Grund, dass du AnsiStrings in so großem Maße benötigst, wenn man fragen darf?


Tastaro - Do 09.10.14 13:03

Unsere Projekte haben ein paar Millionen Codezeilen mit binären Dateien, binären Übertragungsprotokollen, zugekauften sowie über die Jahre selbst entwickelten Komponenten usw.
Es wird wahrscheinlich günstiger sein das aktuellste Projekte davon in einer neue Version komplett neu aufzusetzen und die älteren auslaufen zu lassen.


jaenicke - Do 09.10.14 14:41

Da wäre ich mir nicht so sicher... solange der Code einigermaßen sauber geschrieben ist, ist der Aufwand für eine Umstellung meistens überschaubar. (Jedenfalls im Vergleich zu einem kompletten Neuanfang)
Aber letztlich kann man das von außen natürlich nicht beurteilen.

Wir haben zuerst auch Schlimmes befürchtet, aber am Ende ging es dann seinerzeit schneller als gedacht.