Gebräuchliche Routinen für AnsiStrings
Nach oben zu Mit Strings arbeiten
Die Behandlungsroutinen für Strings in SysUtils
behandeln UnicodeString- und AnsiString -Typen. In ihren funktionalen Bereichen dienen verschiedene Routinen demselben Zweck, verwenden jedoch für Berechnungen unterschiedliche Kriterien.
Inhaltsverzeichnis
Die Funktionen der Unit AnsiStrings bieten dieselben Möglichkeiten wie die Routinen der Unit SysUtils. AnsiStrings
-Funktionen bieten eine bessere Performance für AnsiString
als SysUtils
-Funktionen, weil SysUtils
-Funktionen einen AnsiString
in einen UnicodeString
konvertieren. AnsiStrings
-Funktionen arbeiten nur mit AnsiString
, daher gibt es kein Konvertierung.
In den nachfolgenden Tabellen sind diese Routinen nach folgenden Funktionsbereichen geordnet:
Gegebenenfalls enthalten die Tabellen weitere Spalten, in denen angegeben ist, ob folgende Kriterien durch die Routine erfüllt werden:
- Berücksichtigt die Groß-/Kleinschreibung: Bei Verwendung lokaler Spracheinstellungen wird die Definition der Groß-/Kleinschreibung ermittelt. Wenn die Routine nicht auf einem Sprachtreiber basiert, erfolgt die Analyse nach Maßgabe der Ordinalwerte der Zeichen. Berücksichtigt die Routine die Groß-/Kleinschreibung nicht, werden Groß- und Kleinbuchstaben nach einem vordefinierten Muster gemischt.
- Berücksichtigt lokale Spracheinstellungen: Die Berücksichtigung lokaler Spracheinstellungen ermöglicht die Unterstützung sprachtreiberspezifischer Funktionen in der Anwendung. Dies gilt insbesondere für asiatische Sprachumgebungen. Die meisten Sprachtreiber unterstellen, dass Kleinbuchstaben einen geringeren Wert als die entsprechenden Großbuchstaben besitzen. Dies widerspricht der ASCII-Sortierfolge, in der Kleinbuchstaben einen größeren Wert haben. Routinen, die lokale Spracheinstellungen für Windows benutzen, beginnen üblicherweise mit dem Wort Ansi (in der Form AnsiXXX).
- Unterstützt Multibyte-Zeichensätze (MBCS): MBCS-Zeichensätze werden beim Schreiben von Quelltext für fernöstliche Sprachtreiber eingesetzt. Multibyte-Zeichen werden durch eine Kombination aus Zeichencodes, die zwischen ein und sechs Byte lang sein können, repräsentiert. Die Länge des Strings in Byte entspricht also nicht unbedingt der Anzahl der Zeichen im String. Die Routinen zur Unterstützung von Multibyte-Zeichensätzen verarbeiten Ein- und Multibytezeichen.
ByteType und StrByteType ermitteln, ob ein bestimmtes Byte das führende Byte eines Zeichens darstellt, das zwei oder mehr Bytes umfasst. Achten Sie beim Einsatz von Multibyte-Zeichen sorgfältig darauf, Strings nicht so abzuschneiden, dass ein mehrere Bytes langes Zeichen halbiert wird. Übergeben Sie Zeichen nicht als Parameter an Prozeduren oder Funktionen, da die Größe der Zeichen nicht von vornherein feststeht. Übergeben Sie stattdessen einen Zeiger auf das Zeichen bzw. den String. Weitere Informationen zu Multibyte-Zeichensätzen finden Sie unter Quelltext anpassen.
Routinen für die String-Länge:
Routine | Berücksichtigt lokale Spracheinstellungen | Unterstützt MBCS | Rückgabe |
---|---|---|---|
Ja |
Ja |
Anzahl der Elemente in String. Gilt nicht für "Zeichen" in MBCS- oder Unicode-Surrogatpaaren. | |
Ja |
Ja |
Anzahl der Bytes, die für die Repräsentation des Typs oder der Variable erforderlich ist. |
Beachten Sie bitte, dass Length
und SizeOf
für alle Strings - außer für kurze Strings - unterschiedliche Ergebnisse liefern. SizeOf
entspricht der Byte-Anzahl in einem Zeiger, weil nicht kurze Strings Zeiger sind.
Routinen zum Vergleichen von Strings:
Routinen zum Umwandeln der Groß-/Kleinschreibung:
Routine | Berücksichtigt lokale Spracheinstellungen | Unterstützt MBCS |
---|---|---|
System.AnsiStrings.AnsiLowerCase System.SysUtils.AnsiLowerCase |
Ja |
Ja |
System.AnsiStrings.AnsiUpperCaseFileName System.SysUtils.AnsiUpperCaseFileName |
Ja |
Ja |
System.AnsiStrings.AnsiUpperCase System.SysUtils.AnsiUpperCase |
Ja |
Ja |
Nein |
Nein. Funktioniert nur für A bis Z, nicht für europäische Buchstaben mit Akzenten (Umlaute etc.). | |
Nein |
Nein. Funktioniert nur für a bis z, nicht für europäische Buchstaben mit Akzenten (Umlaute etc.). |
- Hinweis: Sämtliche Routinen, die für Dateinamen-String verwendet werden:
AnsiCompareFileName
,AnsiLowerCaseFileName
undAnsiUpperCaseFileName
berücksichtigen die Ländereinstellung des Systems. Sie sollten ausschließlich Dateinamen benutzen, die portierbar sind, da sich die landesspezifischen Zeichensätze für Dateinamen von der Standardoberfläche unterscheiden können.
Routinen zum Bearbeiten von Strings
Routine | Groß-/Kleinschreibung | Unterstützt MBCS |
---|---|---|
NV |
Ja | |
System.AnsiStrings.AnsiQuotedStr System.SysUtils.AnsiQuotedStr |
NV |
Ja |
System.AnsiStrings.AnsiReplaceStr System.StrUtils.AnsiReplaceStr |
Ja |
Ja |
System.AnsiStrings.AnsiReplaceText System.StrUtils.AnsiReplaceText |
Nein |
Ja |
System.AnsiStrings.StringReplace System.SysUtils.StringReplace |
Optional (mit Flag) |
Ja |
System.AnsiStrings.ReverseString System.StrUtils.ReverseString |
NV |
Nein |
NV |
Nein | |
NV |
Nein | |
Ja |
Ja | |
NV |
Ja | |
NV |
Ja | |
NV |
Ja | |
NV |
Ja |
Routinen für Teilstrings:
Routine | Groß-/Kleinschreibung | Unterstützt MBCS |
---|---|---|
NV |
Ja | |
Ja |
Ja | |
Ja |
Ja | |
System.AnsiStrings.IsPathDelimiter System.SysUtils.IsPathDelimiter |
Ja |
Ja |
System.AnsiStrings.LastDelimiter System.SysUtils.LastDelimiter |
Ja |
Ja |
NV |
Nein | |
NV |
Nein | |
NV |
Nein | |
Nein |
Nein | |
NV |
Ja |
Routinen für String-Informationen (in System):
Routine | Rückgabe |
---|---|
Codeseite | |
Elementgröße | |
Referenzzähler |
- Hinweis: Ändern Sie die interne String-Struktur nicht, da diese sich in den jeweiligen Produktversionen ändert.