Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.184 Beiträge
 
Delphi 12 Athens
 
#3

AW: Verhalten von String.Join bzgl. Array of Const Parameter

  Alt 19. Nov 2020, 18:58
k.A. wer auf die schwachsinige geniale Idee kam, aber der WideChar wurde im string.Join vergessen.
> 'x' mit nur einem Zeichen ist ein Char (WideChar)
> und bei mehr oder weniger/keinem Zeichen ist es ein String (UnicodeString)

Außer im NEXTGEN (wo es hier garkeine Chars gibt), wurde nur vtChar und vtPChar implementiert, was aber die AnsiChar und PAnsiChar sind,
wobei der Compiler aber deine 'Zeichen' als WideChar übergibt.

Ebenso darfst du keine AnsiString, WideString, PWideChar, Variant oder ShortString verwenden,
siehe ValueToString im TStringHelper.Join
und alles was diese Funktion nicht kennt, wird mit "(Unknown) : %d" beantwortet.
Und es gibt keinen vernünftigen Grund, warum diese 5 Zeilen Code weggelassen wurden.
(die Codevervollständigung füllt Einem schließlich das CASE und es ist mehr Aufwand jenes geziehlt wegzulassen)


Fazit: Einzelne Zeichen mußt du entweder nach String oder AnsiChar casten,
oder warten bis in 1-5 Jahren der Fehler behoben wurde, nachdem du ihn gemeldet hast.



Fun-Fact: entweder nutzt sonst niemand das Join oder es kam viele Jahre lang noch niemand auf die Idee einzelne Char-Konstanten reinzugeben.
$2B or not $2B

Geändert von himitsu (19. Nov 2020 um 19:17 Uhr)
  Mit Zitat antworten Zitat