jeudi 1 décembre 2011

Conversion text vers entier sécurisée (String to Int)

Conversion non sécurisée
La méthode la plus simple de convertir un texte vers sa valeur entière est de faire un casting à la dure.
Bien qu'il existe d'autres méthodes, je vous propose celle-ci en guise d'exemple

$b = [int]"123"
$b
Affiche:
123

Par contre, s'il y a des caractères alphanumérique dans la chaine source, cela se termine en plantage.
Par exemple:
$b = [int]"123a"
Affiche
Impossible de convertir la valeur « 123a » en type « System.Int32 ». Erreur : « Le format de la chaîne d'entrée est incorrect. »
Au niveau de ligne : 1 Caractère : 11
+ $b = [int] <<<< "123a"
    + CategoryInfo          : NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId : RuntimeException


Une conversion sécurisée
La conversion sécurisée est obtenue avec l'opérateur "-as". Si la conversion est impossible, le résultat sera simplement Null.
Voici les deux exemples précédents:
$b = "123" -as [int]
$b -eq $null
Affiche
False

La valeur de $b peut-être utilisée directement
$b
Affiche
123

Et maintenant, s'il y a un problème dans la chaine source:

$b = "123a" -as [int]
$b -eq $null
Affiche... notez que la conversion ne génère pas d'erreur :-)
True

Aucun commentaire: