Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Aide | Shop Recherche
1781 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] VB script : Conversion Str en Int

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu] VB script : Conversion Str en Int

n°2304131
Fishes
Posté le 03-08-2017 à 10:50:09  profilanswer
 

Salut  :hello:  
 
Un truc qui va paraître bête mais j'ai cherché pas mal sur le net, et rien ne fonctionne :(
 
Je dois bêtement lire 2 lignes d'un mail et additionner les montants contenus dans ces 2 lignes.
 
Exemple dans le mail:
 
Copier:  1000  
Printer:  500    
 
 
Je dois obtenir 1500, et tout ce que j'arrive à avoir, c'est 1000500
 
Est-ce qu'il y aurait un moyen simple de faire une addition ?
 
J'ai tenté avec des CINT(), VAL(), des variables intermédiaires, mais rien ne marche  :cry:  
 
Merci d'avance.  Voilà le bout de code :
 
 
 

Code :
  1. Total1 = 0
  2. Total1Array = split(MailBodyArray(x+8),":" )
  3. Total1 = Trim(Total1Array(1))
  4. Total1Array = split(MailBodyArray(x+9),":" )
  5. Total1 = Trim(Total1Array(1))
  6. Total1 = Total1 + Trim(Total1Array(1))


Message édité par Fishes le 03-08-2017 à 14:49:04

---------------
Topic CoC HFR, viendez :o
mood
Publicité
Posté le 03-08-2017 à 10:50:09  profilanswer
 

n°2304138
localghost
Posté le 03-08-2017 à 12:43:37  profilanswer
 

Bonjour,
 
En appelant google avec "how to convert string in int" je tombe sur la fonction Cint.
Cint : https://www.w3schools.com/asp/func_cint.asp


---------------
"Elle élimine l'évidence comme éternité potentielle de l'absence de dieu."
n°2304140
Fishes
Posté le 03-08-2017 à 13:29:47  profilanswer
 

Merci mais comme indiqué, j'ai testé ça.  Erreur "Type mismatch".
 
Edit pour être plus précis.
 

Code :
  1. Total1 = 0
  2. Total1Array = split(MailBodyArray(x),":" )
  3. Total1 = Trim(Total1Array(1))
  4. Test1 = CInt(Total1)


 
Ça plante à la dernière ligne avec Cint.  Pourtant quand j'utilise la fonction VarType(Test1), il me renvoie bien la valeur 8 (soit vbString)...


Message édité par Fishes le 03-08-2017 à 13:38:22

---------------
Topic CoC HFR, viendez :o
n°2304142
localghost
Posté le 03-08-2017 à 14:00:16  profilanswer
 

Et comme ceci :  
 

Code :
  1. Total1 = 0
  2. Total1Array = split(MailBodyArray(x+8),":" )
  3. Total1 = Cint(Trim(Total1Array(1)))
  4. Total1Array = split(MailBodyArray(x+9),":" )
  5. Total1 = Total1 + Cint(Trim(Total1Array(1)))


 
 
Est-ce que ça passe ?


---------------
"Elle élimine l'évidence comme éternité potentielle de l'absence de dieu."
n°2304147
Fishes
Posté le 03-08-2017 à 14:40:21  profilanswer
 

En tout cas ça va plus loin :)

 

J'ai bien mes 2 "nombres" (j'ai séparé en 2 variables pour que ça soit plus clair), à savoir que dans mes 2 chaînes c'est "152290 et 15048".

 

Il reste une erreur sur Total1: Overflow.

 

Pourtant ça devrait bien rentrer dans un Integer non ?

 
Code :
  1. Total1Array = split(MailBodyArray(x+1),":" )
  2. TotalCopy = Trim(Total1Array(1))
  3. Total1Array = split(MailBodyArray(x+2),":" )
  4. TotalPrint = Trim(Total1Array(1))
  5. Total1 = CInt(TotalCopy) + CInt(TotalPrint)
 


Re-Edit : J'ai remplacé par CLng, et ça fonctionne...  Bizarre j'ai vu des sites qui parlaient de 32xxx max, et d'autres de 2,147,483,647.

 

Enfin, merci :)

   

Message cité 1 fois
Message édité par Fishes le 03-08-2017 à 14:48:37

---------------
Topic CoC HFR, viendez :o
n°2304150
localghost
Posté le 03-08-2017 à 16:24:59  profilanswer
 

Heureux d'avoir pu t'aider.


---------------
"Elle élimine l'évidence comme éternité potentielle de l'absence de dieu."
n°2304152
patrice337​40
Avec la réponse, c'est facile.
Posté le 03-08-2017 à 16:31:33  profilanswer
 

Fishes a écrit :

En tout cas ça va plus loin :)
J'ai bien mes 2 "nombres" (j'ai séparé en 2 variables pour que ça soit plus clair), à savoir que dans mes 2 chaînes c'est "152290 et 15048".
Il reste une erreur sur Total1: Overflow.
Pourtant ça devrait bien rentrer dans un Integer non ?

Code :
  1. Total1Array = split(MailBodyArray(x+1),":" )
  2. TotalCopy = Trim(Total1Array(1))
  3. Total1Array = split(MailBodyArray(x+2),":" )
  4. TotalPrint = Trim(Total1Array(1))
  5. Total1 = CInt(TotalCopy) + CInt(TotalPrint)


Re-Edit : J'ai remplacé par CLng, et ça fonctionne...  Bizarre j'ai vu des sites qui parlaient de 32xxx max, et d'autres de 2,147,483,647.
Enfin, merci :)


 
Pour éviter le TRIM(), tu aurais pu utiliser VAL()  :

Code :
  1. TotalCopy = Val(Split(MailBodyArray(x + 1), ":" )(1))
  2. TotalPrint = Val(Split(MailBodyArray(x + 2), ":" )(1))
  3. Total1 = TotalCopy + TotalPrint



---------------
Cordialement, Patrice
n°2304153
Fishes
Posté le 03-08-2017 à 17:12:14  profilanswer
 

:jap:
 
Je testerai même ceci, mais demain :
 
Total1 = Val(Split(MailBodyArray(x + 1), ":" )(1)) + Val(Split(MailBodyArray(x + 2), ":" )(1))
 
Merci  :hello:


---------------
Topic CoC HFR, viendez :o

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  [Résolu] VB script : Conversion Str en Int

 

Sujets relatifs
Un script pour deux pageslogin/mot de passe dans script ftp dans dos
[VB] Erreur si utilisation d'un ContextMenuStripexecuter un script en python en variable?
Backup avec du script BATCHoptimisation script perl
Cliquer sur un bouton d'une boite de dialogue via un scriptScript pour désinstaller le pack office
[PHP] droits du user du script ?script perl pour remplacement des chiffre en mots
Plus de sujets relatifs à : [Résolu] VB script : Conversion Str en Int



Copyright © 1997-2016 Hardware.fr SARL (Signaler un contenu illicite) / Groupe LDLC / Shop HFR