System.SysUtils.TStringHelper

Aus RAD Studio API Documentation
Wechseln zu: Navigation, Suche

Delphi

TStringHelper = record helper for string

C++

struct TStringHelper /* Helper for uni  string 'System::UnicodeString' */;

Eigenschaften

Typ Sichtbarkeit Quelle Unit Übergeordnet
helper
class
public
System.SysUtils.pas
System.SysUtils.hpp
System.SysUtils System.SysUtils


Beschreibung

Unterstützender Record, der Funktionen und Eigenschaften für die Arbeit mit allen Strings, 1-basierten und 0-basierten, bereitstellt.

TStringHelper ist ein unterstützender Record für den intrinsischen String-Typ und stellt Hilfsmethoden bereit, auf die von String-Typen so zugegriffen werden kann, als ob die Hilfsmethoden Methoden einer Klasse oder eines Records wären.

Die mobilen Delphi-Compiler (DCCIOS32 und DCCIOSARM) führen die nullbasierte Indizierung für Strings ein. Die Delphi-Desktop-Compiler unterstützen weiterhin 1-basierte Strings, aber Interfaces und dynamische Arrays sind bei allen Delphi-Compilern nullbasiert. Diese Änderung wird ausführlich unter Migrieren von Delphi-Code zu mobilen Anwendungen vom Desktop aus erläutert.

Die Indizierung für String-Typen unterscheidet sich je nach verwendetem Compiler, wie in der folgenden Tabelle dargestellt.

Indizierung von Strings in den Delphi-Compilern
Delphi-Compiler String-Indizierung

Mobile Delphi-Compiler:

  • DCCIOSARM
  • DCCIOS32

0-basiert

(der Startindex des ersten Zeichens in einem String ist null)

Delphi-Desktop-Compiler

  • DCC32
  • DCC64
  • DCCOSX

1-basiert

(der Startindex des ersten Zeichens in einem String ist eins)

Wenn Sie immer TStringHelper-Methoden für die Behandlung von String verwenden, können Sie Code für mehrere Compiler und Plattformen ohne Bedingungen (z.B. die IFDEF-Direktive) schreiben.

Beispiel:

Wenn Sie früher im Code die Funktion System.Pos mit einem String namens S verwendet haben, können Sie diesen Code jetzt bearbeiten und die Methode TStringHelper.IndexOf verwenden. Sie können S.IndexOf() aufrufen, um dieselbe Funktion auszuführen:

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.

Ausgabe:


8
9
Hinweis: Verwenden Sie zur Bearbeitung von Strings künftig auf allen Plattformen die TSringHelper-Methoden. Um die Abwärtskompatibilität mit vorhandenem Code so weit wie möglich beizubehalten, arbeiten die seit langem bestehenden Funktionen aus der Unit System, die String-Indizes betreffen, weiterhin mit 1-basierten Strings und führen auch die erforderlichen automatischen Umwandlungen aus, die für korrekte Operationen mit den neuen nullbasierten Strings erforderlich sind. Ein Beispiel dafür ist System.Pos. Diese älteren Funktionen zur String-Verarbeitung aus der Unit System sind aber veraltet und deren Unterstützung könnte zukünftig aus dem Produkt entfernt werden.

Siehe auch