Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: Umwandeln eines Characters

  Alt 26. Jul 2020, 16:39
Und was ist mit iOS?
Und wieso hörst du nicht auf den Compiler, der dir hier Warnungen um die Ohren werden sollte? (z.B. zugewieserner Wert an Variable wird nicht benutzt)


Aber eigentlich ist es falsch hier auf eine Platform zu unterscheiden, denn das mit dem 0-Index kann dir auch im Windows passieren.
Die richtige Option, auf die man hört ist {$ZeroBasedStrings ON} oder OFF, oder eben man holt sich aus dem Typ die Information.

PS:
Delphi-Quellcode:
iValue := Ord(szInputString[Low(String)]);
// oder
iValue := Ord(szInputString.Chars(0)); // diese Helper sind immer mit 0

Byte und AnsiChar war sowieso nicht "ganz" richtig,
denn es ist ja ein WideChar, welcher ein Word groß ist.

String = UnicodeString, seit 2009 ..... aber bis vor 2009 war es fast richtig, weil es da noch ein AnsiString war.

Und fast, weil es noch nie richtig war, denn String war/ist ein compilerabhängiger Typ, der sich auch mal verändern kann, wie man mit Delphi 2009 erleben durfte.
Char PChar String
AnsiChar PAnsiChar AnsiString
WideChar PWideChar WideString UnicodeString
Wer statische Typen mit dynamischen vermischt, ist selbst Schuld, wenn es mal nicht stimmen könnte.

z.B. Pointer in Integern speichern -> leider wurde Integer eingefroren (16 -> 32 Bit machte er noch mit), aber ab jetzt gibt es den NativeInt, der jetzt zwischen 32 und 64 Bit mitwächst.
bzw. ich verwende lieber den IntPtr (aus C++ bekannt)
Neuste Erkenntnis:
Seit Pos einen dritten Parameter hat,
wird PoSex im Delphi viel seltener praktiziert.

Geändert von himitsu (26. Jul 2020 um 16:59 Uhr)
  Mit Zitat antworten Zitat