Saiten in Delphi
—— Excerpt aus dem Internet
1: Verschiedene Saiten
Zeichenfolgen sind der nützlichste Typ aller Datentypen in ObjectPascal. Viele Funktionen übergeben Argumente mit Saiten. Da es in Delphi verschiedene Möglichkeiten gibt, Saiten zu definieren und zu verwenden, einschließlich typischer Zeichenfolgen (Saiten) in Pascal, langen Saiten, die von Delphi (AnSsistings) unterstützt werden, Charakter -Arrays ähnlich der C -Sprache (Arrayofchar) und auf Zeichenzeiger (pchar), die Zeugnis (pChar), ähnelt, usw. Der folgende Artikel wird über die Unterschiede und Vorsichtsmaßnahmen dieser Typen in Definition und Anwendung sprechen.
1. Traditionelle Pascal -Saiten
In Pascal ist eine typische Zeichenfolge eine Abfolge von Zeichen einer bestimmten Länge. Jede Zeichenfolge hat eine festgelegte Länge (die Standardeinstellung beträgt 255), und das Folgende ist ein Beispiel:
Var
Adresse: String;
Code: String [50];
Die Adresse ist eine Zeichenfolge mit einer Länge von 255 und die maximale Codelänge beträgt 50.
Die traditionelle Pascal -Saitenlänge darf 255 nicht überschreiten.
Sie können den String -Verkettungsvorgang "+" verwenden, um Strings zusammenzuschließen:
Ergebnis: = string1+string2;
2. Lange Saiten in Delphi
Delphi unterstützt nicht nur traditionelle Pascal Short -Saiten, sondern unterstützt auch lange Saiten. Lange Charaktere heißen AnSsistring. Lange Zeichenfolgen vergeben den Speicher dynamisch, dh der für Zeichenfolgen erforderliche Speicher wird nur bei der Verwendung von Zeichenfolgen zugewiesen, sodass ihre Länge nicht begrenzt ist. Wenn Sie in Delphi String1: String als Typbeschreibung verwenden, kann String1 entweder eine kurze Zeichenfolge oder eine lange Zeichenfolge sein, abhängig von den Einstellungen des $ H -Schalters im Compiler. Der Standardwert ist $ H+, der eine Long -Zeichenfolge darstellt. Lange Saiten enden mit Null, was bedeutet, dass lange Saiten vollständig mit Null-End-Saiten in der C-Sprache kompatibel sind.
Die maximale Länge einer Zeichenfolge kann durch die SetLength -Funktion eingestellt werden:
SetLength (String1,100);
3. Charakterarray ähnlich C.
Ein Array, das mit 0 beginnt, kann verwendet werden, um Saiten zu speichern, die mit Null enden. Die folgende Definition:
Var
Name: Array [0..50] OFCHAR;
4. Pchar Zeiger
Wenn das ExendedSyNTax in Delphi festgelegt wurde (Standard), ist das Charakter -Array, das mit 0 beginnt . Sie können die Zeichenfolge direkt an den PCHAR -Zeiger bezahlen. Zum Beispiel:
var
P: pchar;
Beginnen
P: = 'HelloWorld';
Ende;
Auf diese Weise zeigt P auf ein Stück Erinnerung, das die Zeichenfolge 'HelloWorld' speichert und mit Null endet.
Für viele API -Funktionen für Windows Application Program Interface erfordern der PCHR -Typ als Parameter. Wenn Sie den PCHRE -Zeiger verwenden, verwenden Sie zunächst die Funktion GetMem (VAG: Zeiger; Größe: Integer), um die Zuweisung von Speicher zuzuweisen. Speicher loslassen. Zum Beispiel:
Varwindir, Sysdir: PCHR;
Beginnen
GetMem (Windir, 256); {zuweisen Sie Speicher für Zeiger}
GetWindowsDirectory (Windir, 128); {Legen Sie das Windows -Installationsverzeichnis auf Windir}
ShowMessage ('WindowsDirectoryis'+Windir); {Show -Ergebnis}
Ende;
Zwei: String -Konvertierung
In der obigen Einführung wird die Definition und Verwendung von vier Arten von Zeichenfolgen in Delphi eingeführt. Da verschiedene Funktionen unterschiedliche Anforderungen für String -Parametertypen haben, ist eine String -Typ -Konvertierung erforderlich.
1. Sie können Strpas verwenden, um eine Zeichenfolge zu konvertieren, die mit Null in eine Pascal Short String endet. StrpCopy vervollständigt die entgegengesetzte Umwandlung.
2. Da lange Saiten mit Null enden, können Sie lange Saiten mit Guss in PCHRE -Typ umwandeln. Verwendung ist: pchar (s), s ist eine lange Schnur. Casting gibt einen Zeiger auf den ersten Charakter der langen Saite zurück, und die spitze Zeichenfolge endet mit Null. Zum Beispiel:
Var
Bildunterschrift, Nachricht: String;
Bildunterschrift: = 'HelloWorld!';
MSSAGE: = 'thisatestoflongString';
MessageBox (0, pChar (Nachricht), pchar (caption), mb_ok);
Zusammenfassung: Wenn Sie Strings in Delphi verwenden, müssen Sie sich immer auf den Typ der Zeichenfolge klar machen, um Verwirrung zu vermeiden. Wenn Sie Strings verstehen, sollten Sie Strings mit Zeigern und Gedächtniszuweisungen verknüpfen, um das Verständnis zu verbessern.