System.SysUtils.TStringHelper
Delphi
TStringHelper = record helper for string
C++
struct TStringHelper /* Helper for uni string 'System::UnicodeString' */;
Inhaltsverzeichnis
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:
|
0-basiert |
Delphi-Desktop-Compiler
|
1-basiert |
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.