Delphi/Lazarus: Convertir Variable Variant en Integer
Question de Invité | 29/11/2022 à 17:49
J'ai une valeur du type Variant, mais j'ai besoin du type de variable Integer dans mon programme pour pouvoir calculer avec la valeur.
En termes concrètes, il s'agit d'une fonction qui nécessite un numéro Integer. Dès que je passe la valeur Variant à cette fonction, le compilateur crée un message d'erreur.
Comment est-il possible de convertir ou de traduire une valeur de type Variant en une valeur de type Integer?
Sujets Connexes
Delphi/Lazarus: La touche ALT, SHIFT ou CTRL est-elle enfoncée?
Tutoriel | 0 Commentaires
Lazarus: Saisie de Nombres binaires, hexadécimaux et integer
Article | 0 Commentaires
Delphi/Lazarus: Convertir Valeur de Variant en String
Question | 1 Réponse
Convertir plusieurs Fichiers CSV en Feuilles de Calcul XLSX ou ODS
Tutoriel | 0 Commentaires
Delphi/Lazarus: Sélectionner tout avec CTRL+A dans ListView
Conseil | 0 Commentaires
JavaScript: Teste si Variable JavaScript est définie
Conseil | 0 Commentaires
Lazarus: Charger Fichier en tant que Array d'Octets et Enregistrer Array d'Octets en tant que Fichier
Tutoriel | 0 Commentaires
Avis Important
Veuillez noter: Les contributions publiées sur askingbox.com sont des contributions d’utilisateurs et ne doivent pas remplacer les conseils d’un professionnel. Ils ne sont pas vérifiés par des indépendants et ne reflètent pas nécessairement l’opinion de askingbox.com. Apprendre encore plus.
Participer
Posez votre propre question ou écrivez votre propre article sur askingbox.com. Voici comment.
Le moyen le plus simple consiste à définir une variable Integer et établir cette variable à la valeur de la variable Variant:
Cela est même possible dans le cas que la valeur Variant est en fait du type String (chaîne).
Si vous souhaitez néanmoins vérifier le type auparavant, vous pouvez utiliser la fonction VarType pour cela:
VarType renvoie le type de la variable Variant. Veuillez noter: Il existe également d'autres types de nombres au lieu d'Integers, afin que vous puissiez également vérifier
VarType returns the type of the variant variable. Please note: There are also other number types instead of integers, so you can also check for "if (VarType(v) in [varinteger, varsmallint, varshortint, varbyte, varsingle, vardouble, varword, varlongword, varint64, varqword]) then begin..." ou une autre liste de types pour assurer que vous ne manquez aucun type de numéro.
30/11/2022 à 10:58
Peut-être que mon chemin est un peu incommode, mais il devrait couvrir tous les cas possibles (par exemple le cas que le type de Variant n'est pas un Integer).
Dans ce code, d'abord, nous convertissons la variable Variant en une String à l'aide de VarToStr, puis, nous supprimons le whitespace (espaces, sauts de ligne et ainsi de suite) de la String en utilisant la fonction Trim et après cela, nous utilisons StrToIntDef pour essayer de convertir le String dans un Integer.
Le deuxième paramètre de StrToIntDef (ici 0) est la valeur par défaut. Cette valeur est renvoyée s'il n'est pas possible de convertir la chaîne (string) passée en un entier (integer).
01/12/2022 à 18:01