System.SysUtils.TStringHelper
Delphi
TStringHelper = record helper for string
C++
struct TStringHelper /* Helper for uni string 'System::UnicodeString' */;
Propriétés
Type | Visibilité | Source | Unité | Parent |
---|---|---|---|---|
helper class |
public | System.SysUtils.pas System.SysUtils.hpp |
System.SysUtils | System.SysUtils |
Description
Assistance d'enregistrements qui fournit des fonctions et des propriétés pour manipuler l'ensemble des chaînes, y compris les chaînes à base 1 et zéro.
TStringHelper est une assistance d'enregistrements pour le type chaîne intrinsèque et fournit des méthodes d'assistance qui sont accessibles à partir des types chaîne comme si elles étaient des méthodes d'une classe ou d'un enregistrement.
Les compilateurs mobiles Delphi (DCCIOS32 et DCCIOSARM) introduisent l'indexation basée sur 0 pour les chaînes. Les compilateurs de bureau Delphi offrent toujours le support des chaînes à base 1 mais les interfaces et les tableaux dynamiques sont à base zéro pour tous les compilateurs Delphi. Cette modification est expliquée plus en détail dans Migration du code Delphi en mobile depuis le bureau.
L'indexation des types de chaînes est différente selon le compilateur utilisé, comme illustré dans le tableau suivant.
Indexation des chaînes dans les compilateurs Delphi | |
---|---|
Compilateurs Delphi | Indexation des chaînes |
Compilateurs mobiles Delph
|
A base zéro |
Compilateurs de bureau Delphi
|
A base 1 |
Utiliser toujours des méthodes TStringHelper pour gérer les chaînes vous permet d'écrire du code pour des compilateurs et des plates-formes multiples sans utiliser de conditions telles que la directive IFDEF.
Exemple
Si votre code utilisait précédemment la fonction System.Pos avec une chaîne appelée S, vous pouvez maintenant modifier le code pour utiliser la méthode TStringHelper.IndexOf. Vous pouvez appeler S.IndexOf() pour effectuer la même fonction :
var
MyString: String;
begin
MyString := 'This is a string.';
Writeln(myString.IndexOf('a', 0, 0)); //Working with zero-based or 1-based strings
Writeln(Pos('a', myString)); //Working with 1-based strings
end.
Sortie :
8 9
- Remarque : Nous vous conseillons plutôt d'utiliser les méthodes TStringHelper lorsque vous manipulez des chaînes sur des plates-formes multiples. Pour préserver la compatibilité descendante avec le code existant, les anciennes fonctions de l'unité System qui traitent des index de chaîne continuent à fonctionner avec des chaînes de base 1 et réalisent correctement les opérations sur les chaînes à base zéro. Un exemple est System.Pos. Toutefois, ces anciennes fonctions de manipulation de chaînes de l'unité System sont obsolètes et leur prise en charge sera sans doute supprimée dans le futur.