SETLENGTH |
Fixer la longueur |
---|---|
Delphi/Kylix/Lazarus | System |
Syntaxe
Procedure SetLength(Var S:String; NewLength:Integer); |
Procedure SetLength(Var A:Array type;Length:Integer); |
Procedure SetLength(Var A:Array type;Len1,Len2,...:Integer); |
Paramètres
Nom | Description |
---|---|
S | Ce paramètre permet d'indiquer la chaîne de caractères utilisé comme base du traitement |
A | Ce paramètre permet d'indiquer le tableau à fixer la longueur |
NewLength | Ce paramètre permet d'indiquer le nombre de caractères à garder |
Length | Ce paramètre permet d'indiquer la longueur du tableau |
Len1,Len2,... | Ce paramètre permet d'indiquer les longueurs des dimensions du tableau. |
Description
Cette procédure permet de fixer la longueur d'une chaîne de caractères de format standard Pascal ou d'un tableau dynamique.
Remarques
- La procédure SetLength modifie la taille d'une chaîne ou d'un tableau dynamique. Si la nouvelle longueur est plus longue que la longueur actuelle, l'espace supplémentaire n'est pas initialisé, sauf si le tableau contient des chaînes de caractères, des interfaces, d'autres tableaux dynamiques ou Variant, auquel cas ils sont correctement initialisés.
- La procédure SetLength n'est pas une véritable procédure.
- La fonction Length est exprimée en unités logiques (éléments du tableau, caractères). En particulier, si S est une WideString, la fonction Length est en caractères et non en octets.
- Si la chaîne de caractères ou le tableau a plusieurs références, la procédure SetLength crée toujours une instance unique et définit sa longueur, même si la nouvelle longueur est la même que la longueur actuelle.
- Si le paramètre A est un tableau dynamique multidimensionnel, vous pouvez passer une ou plusieurs longueurs à la procédure SetLength. La première longueur correspond à la dimension la plus à gauche et les longueurs suivantes initialisent les dimensions successives. La longueur par défaut est zéro pour toute dimension que vous omettez pour SetLength.
Exemple
Voici un exemple d'une utilisation typique de cette fonction :
- Program SetLengthSamples;
-
- {$APPTYPE CONSOLE}
-
- Uses SysUtils;
-
- Var
- S:String;
-
- BEGIN
- S:='Gladir.com';
- SetLength(S,6);
- WriteLn('SetLength(''Gladir.com'',6) = ',S);
- S:='Gladir.com';
- SetLength(S,10);
- WriteLn('SetLength(''Gladir.com'',10) = ',S);
- S:='Gladir.com';
- SetLength(S,15);
- WriteLn('SetLength(''Gladir.com'',15) = ',S);
- END.
on obtiendra le résultat suivant :
Left("Gladir.com",6) = GladirLeft("Gladir.com",10) = Gladir.com
Left("Gladir.com",15) = Gladir.com
Voir également
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - Copy
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - Length
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - SetString
Langage de programmation - Delphi/Kylix/Lazarus - Référence de procédures et fonctions - Slice
Dernière mise à jour : Mercredi, le 18 février 2015