; Colonne 10 : Code Postal
If $ligne[14] <> "" Or $ligne[15] <> "" Then
;Gestion du code postal soit 5 chiffres, soit deux, soit vide
$cp1 = StringRegExpReplace($ligne[14], "^([0-9][0-9])$", "${1}000")
$cp2 = StringRegExpReplace($ligne[15], "^([0-9][0-9])$", "${1}999")
If $cp1 == "" Then
$cp1 = 00000
EndIf
If $cp2 == "" Then
$cp2 = 99999
EndIf
; Faire les tests en utilisant comme référence cp1 et cp2
If [color=#BF0000]$cp1 < $oTableau[$j][9] Or $cp2 > $oTableau[$j][9][/color] Then
$bool = False
$logXML._ajoutTest($bool, "Code Postal du, Encours numéro" & $j, $ligne[14], $oTableau[$j][9])
$logXML._ajoutTest($bool, "Code Postal au, Encours numéro" & $j, $ligne[15], $oTableau[$j][9])
EndIf
EndIf
La partie en rouge me pose problème car il me met KO le test car $cp1 et $cp2 sont deux string et je les compare à un integer qui est $oTableau[$j][9]. Comment faire pour forcer mon string en integer..Merci c'est assez urgent pour moi.
If Number($cp1) < $oTableau[$j][9] Or Number($cp2) > $oTableau[$j][9] Then
Par contre, à vérifier absolument dans un autre test, c'est de s'avoir si Number est sortie correctement, car en cas d'échec, elle renvoie 0. Du coup, le script ici ne s'arrête pas en erreur, mais continue en faisant le test :
; Faire les tests en utilisant comme référence cp1 et cp2
$nb = Number($cp1)
$nb1 = Number($cp2)
If $nb < $oTableau[$j][9] Or $nb1 > $oTableau[$j][9] Then
$bool = False
$logXML._ajoutTest($bool, "Code Postal du, Encours numéro" & $j, $ligne[14], $oTableau[$j][9])
$logXML._ajoutTest($bool, "Code Postal au, Encours numéro" & $j, $ligne[15], $oTableau[$j][9])
EndIf
; Faire les tests en utilisant comme référence cp1 et cp2
$nb = Number($cp1)
$nb1 = Number($cp2)
If $nb < $oTableau[$j][9] Or $nb1 > $oTableau[$j][9] Then
$bool = False
$logXML._ajoutTest($bool, "Code Postal du, Encours numéro" & $j, $ligne[14], $oTableau[$j][9])
$logXML._ajoutTest($bool, "Code Postal au, Encours numéro" & $j, $ligne[15], $oTableau[$j][9])
EndIf
Alors j'ai passé tout mon code en débug et c'est bien cette partie de code ; Faire les tests en utilisant comme référence cp1 et cp2 qui fait échouer tout mon test
sylvanie a écrit :Bonjour,
sauf si c'est une erreur de copier/coller, c'est normal, car il faut des (), c'est un appel de fonction.
If $nb < Number($oTableau[$j][9]) And $nb1 > Number($oTableau[$j][9]) Then
C'est bon j'ai trouvé l'erreur cela venait juste du ($nb > $oTableau[$j][9]) Or ($nb1 < $oTableau[$j][9]) ce qui est en rouge
il fallait faire l'inverse.
Donc voici le résultat
If $ligne[14] <> "" Or $ligne[15] <> "" Then
;Gestion du code postal soit 5 chiffres, soit deux, soit vide
$cp1 = StringRegExpReplace($ligne[14], "^([0-9][0-9])$", "${1}000")
$cp2 = StringRegExpReplace($ligne[15], "^([0-9][0-9])$", "${1}999")
If $cp1 == "" Then
$cp1 = 00000
EndIf
If $cp2 == "" Then
$cp2 = 99999
EndIf
; Faire les tests en utilisant comme référence cp1 et cp2
$nb = Number($cp1)
$nb1 = Number($cp2)
If ($nb [color=#BF0000]>[/color] $oTableau[$j][9]) Or ($nb1 [color=#FF0000]< [/color]$oTableau[$j][9]) Then
$bool = False
;~ ConsoleWrite("OK"& @CRLF)
$logXML._ajoutTest($bool, "Code Postal du, Encours numéro" & $j, $ligne[14], $oTableau[$j][9])
$logXML._ajoutTest($bool, "Code Postal au, Encours numéro" & $j, $ligne[15], $oTableau[$j][9])
EndIf
EndIf