System.SysUtils.TStringHelper

De RAD Studio API Documentation
Aller à : navigation, rechercher

Delphi

TStringHelper = record helper for string

C++

/*Helper*/typedef void *TStringHelper;

Propriétés

Type Visibilité  Source Unité  Parent
helper
typedef
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

  • DCCIOSARM
  • DCCIOS32

A base zéro

(l'index de début du premier caractère dans une chaîne est zéro)

Compilateurs de bureau Delphi

  • DCC32
  • DCC64
  • DCCOSX

A base 1

(l'index de début du premier caractère dans la chaîne est 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.

Voir aussi