2012-05-09 4 views
0

Si j'exécute le code suivant dans VBScript tout fonctionne comme prévu, si je l'exécute dans ASP (IIS 7), j'obtiens ce mauvais résultat. Quelqu'un sait-il pourquoi?Résultat différent dans ASP que dans VBScript

mumber = "027609366" 
WScript.Echo Left(number, 2) & " " & _ 
      Mid(number, 3, 2) & " " & _ 
      Mid(number, 5, 2) & " " & _ 
      Right(number, 3) 

' vbs => 03 76 09 366 (right) 
' asp => 03 76 09 66 (wrong) 

J'utilise maintenant ce qui suit qui fonctionne:

Left(number, 2) & " " & _ 
Mid(number, 3, 2) & " " & _ 
Mid(number, 5, 2) & " " & _ 
Mid(number, 7) 

Mais je me demande pourquoi cela se produit.

+1

Cela ne peut pas être le code exact (puisque vous spécifiez 'mumber' mais agissez sur' number'). Est-il possible que vous ayez un espace supplémentaire à la fin de 'number' dans le cas ASP? –

+1

VBScript et ASP classique utilisent le même noyau linguistique. Les résultats ne peuvent pas être différents. – Tomalak

+3

Conseils généraux: * Toujours * utiliser 'Option Explicit' pour empêcher les bogues de fautes de frappe dans les noms de variables. Stick avec 'Mid()' dans des situations comme celle-ci. Non seulement le code sera plus cohérent, mais il produira également des résultats corrects lorsqu'il y aura des espaces blancs à la fin de la chaîne - tandis que 'Right()' produira des résultats différents. – Tomalak

Répondre

2

Le code ASP est écrit en utilisant VBScript, donc les résultats ne peuvent pas être différents, car techniquement c'est la même chose.

Y a-t-il un espace supplémentaire à la fin de l'un de vos numéros quelque part, qui pourrait provoquer l'affichage incorrect du numéro?

+0

J'ai vérifié la longueur mais pas sur la pièce qui a donné le problème, si je fais un trim() le problème est également résolu, merci – peter

Questions connexes