Strings à Delphi
— - excréter d'Internet
1: Diverses chaînes
Les chaînes sont le type le plus utile de tous les types de données dans ObjectPascal. De nombreuses fonctions passent des arguments avec des chaînes. Puisqu'il existe différentes façons de définir et d'utiliser des chaînes à Delphi, y compris des chaînes typiques (chaînes) dans Pascal, des chaînes longues soutenues par Delphi (ANSistrings), des tableaux de caractères similaires au langage C (ArrayOfChar) et pointant vers le pointeur des personnages (PCHA), etc. L'article suivant parlera des différences et des précautions de ces types dans la définition et l'application.
1 et 1 Cordes de Pascal traditionnelles
Dans Pascal, une chaîne typique est une séquence de caractères d'une certaine longueur. Chaque chaîne a une longueur définie (la valeur par défaut est 255), et ce qui suit est un exemple:
Var
Adresse: String;
Code: chaîne [50];
L'adresse est une chaîne d'une longueur de 255, et la longueur maximale du code est de 50.
La longueur traditionnelle de la chaîne Pascal ne peut pas dépasser 255.
Vous pouvez utiliser l'opération de concaténation des chaînes "+" pour concaténer les chaînes ensemble:
Résultat: = String1 + String2;
2 Longues cordes à Delphi
En plus de soutenir les chaînes courtes traditionnelles Pascal, Delphi prend également en charge les longues cordes. Les personnages longs sont appelés Ansistring. Les chaînes longues allouent dynamiquement la mémoire, c'est-à-dire que la mémoire requise pour les chaînes est allouée uniquement lors de l'utilisation des chaînes, donc leur longueur n'est pas limitée. Dans Delphi, si vous utilisez String1: String comme type Description, String1 peut être une chaîne courte ou une longue chaîne, selon les paramètres du commutateur $ H dans le compilateur. La valeur par défaut est $ h +, qui représente la chaîne longue ANSI. Les cordes longues se terminent avec Null, ce qui signifie que les longues chaînes sont entièrement compatibles avec les chaînes à extrémité nulle dans le langage C.
La longueur maximale d'une chaîne peut être définie via la fonction SetLength:
SetLength (String1,100); Utilisez des fonctions trimleft, trimRight et Trim pour éliminer respectivement les zones vides au début, à la fin et à la fin de la chaîne.
3 et 3 Tableau de caractères similaire à c
Un tableau commençant par 0 peut être utilisé pour stocker les chaînes se terminant par null. La définition suivante:
Var
Nom: Array [0..50] OFCHAR;
4 Pointeur PCHA
Si l'ExededSyntax dans Delphi a été définie (par défaut), le tableau de caractères commençant par 0 est entièrement compatible avec le pointeur PCHA pointant vers le caractère, car le nom du tableau de caractères commençant par 0 est le pointeur pointant vers le premier caractère du tableau de caractères . Vous pouvez payer directement la chaîne au pointeur PCHA. Par exemple:
var
P: PCHA;
Commencer
P: = 'helloworld';
fin;
De cette façon, P pointe vers un morceau de mémoire qui stocke la chaîne «Helloworld» et se termine par null.
De nombreuses fonctions API d'interface du programme d'application Windows nécessitent le type de PCHA en tant que paramètre. Lorsque vous utilisez le pointeur PCHA, utilise d'abord la fonction GetMem (VARP: Pointer; Size: Integer) pour postuler pour l'allocation de la mémoire. Libérez la mémoire. Par exemple:
Varwindir, Sysdir: PCHA;
Commencer
GetMem (Windir, 256); {allouer la mémoire aux pointeurs}
GetWindowsDirectory (Windir, 128); {Mettez le répertoire d'installation de Windows à Windir}
ShowMessage ('WindowsDirectoryis' + Windir); {Show Result}
Fin;
Deux: Conversion de cordes
Ce qui précède introduit la définition et l'utilisation de quatre types de chaînes à Delphi. Étant donné que diverses fonctions ont des exigences différentes pour les types de paramètres de chaîne, la conversion de type de chaîne est requise.
1 et 1 Vous pouvez utiliser STRPAS pour convertir une chaîne se terminant avec Null en une chaîne courte Pascal. Strpcopy complète la conversion opposée.
2 Parce que les cordes longues se terminent avec NULL, vous pouvez convertir les longues chaînes en type PCHA avec le casting. L'utilisation est: PCHA (S), S est une longue chaîne. Le casting renvoie un pointeur vers le premier caractère de la longue chaîne, et la chaîne pointue se termine avec Null. Par exemple:
Var
Légende, message: chaîne;
Légende: = 'Helloworld!';
MSSAGE: = 'thisisatestoflongString';
MessageBox (0, pChar (message), pChar (légende), MB_OK);
Résumé: Lorsque vous utilisez des chaînes à Delphi, vous devez toujours être clair sur le type de chaîne pour éviter la confusion. Lorsque vous comprenez les chaînes, vous devez lier les chaînes avec les pointeurs et les allocations de mémoire pour améliorer la compréhension.