System.RawByteString
Delphi
RawByteString = type AnsiString($ffff);
C++
typedef System::AnsiStringT<65535> RawByteString;
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
type typedef |
public | System.pas System.hpp |
System | System |
Description
Permet le passage de données chaîne de toute page de code sans effectuer de conversions de page de code.
L'objectif de RawByteString est de réduire le besoin de multiples surcharges de procédures qui lisent des données chaîne. Cela signifie que les paramètres des routines qui traitent les chaînes sans se soucier de la page de code des chaînes doivent typiquement être de type RawByteString.
RawByteString doit seulement être utilisé en tant que type de paramètre, et seulement dans des routines qui sinon nécessiteraient de multiples surcharges pour des AnsiStrings avec différentes pages de codes. De telles routines doivent être écrites avec précaution pour la page de code réelle de la chaîne à l'exécution.
En général, il est recommandé que les routines de traitement de chaînes utilisent simplement "string" comme type de chaîne. La déclaration de variables ou de champs de type RawByteString doit être rarement effectuée car cela peut conduire à un comportement indéterminé et à des pertes de données potentielles.
Voir aussi
- TBytes
- System.SetCodePage
- System.AnsiString
- System.Rtti.TRttiAnsiStringType.CodePage
- http://stackoverflow.com/questions/6061919/delphi-xe-rawbytestring-vs-ansistring
- Delphi in a Unicode World Part I: What is Unicode, Why do you need it, and How do you work with it in Delphi?
- Delphi in a Unicode World Part II: New RTL Features and Classes to Support Unicode