System.RawByteString
Delphi
RawByteString = type AnsiString($ffff);
C++
typedef System::AnsiStringT<65535> RawByteString;
Eigenschaften
Typ | Sichtbarkeit | Quelle | Unit | Übergeordnet |
---|---|---|---|---|
type typedef |
public | System.pas System.hpp |
System | System |
Beschreibung
RawByteString ermöglicht die Übergabe von String-Daten jeder beliebigen Codeseite, ohne dass Codeseitenkonvertierungen vorgenommen werden müssen.
RawByteString soll die Notwendigkeit von mehreren Überladungen von Prozeduren reduzieren, die String-Daten lesen. Das bedeutet, dass Parameter von Routinen, die Strings ohne Berücksichtigung der Codeseite verarbeiten, normalerweise vom Typ RawByteString sein sollten.
RawByteString sollte nur als Parametertyp und nur in Routinen verwendet werden, für die ansonsten mehrere Überladungen für AnsiStrings mit unterschiedlichen Codeseiten erforderlich wären. Solche Routinen müssen sorgfältig für die tatsächliche Codeseite des String zur Laufzeit geschrieben werden.
Im Allgemeinen wird empfohlen, dass Stringverarbeitungsroutinen einfach "string" als Stringtyp verwenden sollten. Variablen oder Felder des Typs RawByteString sollten - wenn überhaupt - sparsam deklariert werden, weil dies zu undefiniertem Verhalten und potenziellem Datenverlust führen könnte.
Siehe auch
- TBytes
- System.SetCodePage
- System.AnsiString
- System.Rtti.TRttiAnsiStringType.CodePage
- http://stackoverflow.com/questions/6061919/delphi-xe-rawbytestring-vs-ansistring (EN)
- Delphi in a Unicode World Part I: What is Unicode, Why do you need it, and How do you work with it in Delphi? (EN)
- Delphi in a Unicode World Part II: New RTL Features and Classes to Support Unicode (EN)