Problème en vbs

nick_2428 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention   -  
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour à tous,

j'aimerais pouvoir effectuer une addition de plusieurs variable dans un fichier texte en vbscript. J,ai par exemple, un fichier texte contenant un nombre sur chaque ligne du genre:

(ligne 1) 15
(ligne 2) 20
(ligne 3) 30
(ligne 4) 15


À quoi devrait ressembler le bout de code pour être en mesure d'avoir 80 comme résultat final, considérant que mon fichier n'as pas un nombre fixe de ligne à chaque journée où le code sera utiliser pour recueillir l'information?

Merci d'avance du coup de main

A voir également:

5 réponses

Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Bonjour,

Un truc comme ça peut être:

Dim cpt As Integer
Dim fp As Integer
Dim str As String

fp = Freefile

Open "C:\monfichier.txt" For Input As #fp 
While Not EOF(#fp)
     Input #fp, str
     cpt = cpt + CInt(str)
Wend

Close #fp

MsgBox cpt

«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
0
nick_2428 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
 
Salut, merci de la réponse. Est-ce que c'es bien du vbs? J'ai tester tel quel et ça ne fonctionne pas.

J'ai ensuite adapter le code pour qu'il soit fonctionnel, mais il n'affiche rien comme résultat.


strSourceFile = "C:\monfichier.txt"

Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.openTextFile(strSourceFile, 1,true)

Dim cpt
Dim fp
Dim str

fp = objTextFile.readall

While Not objTextFile.AtEndOfStream
Input fp, str
cpt = cpt + CInt(str)
Wend

objTextFile.close

MsgBox cpt

Merci encore d'y jeter un oeil.
0
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
C'est du VB, ça donne des pistes, et ça ouvre la possibilité de faire des recherches...

ReadAll
lit tout le fichier, ce n'est pas ce que tu cherches à faire, puisque tu veux additionner chaque ligne de ton fichier.

Dim cpt As Integer
Dim str As String
Dim strSourceFile As String
Dim objFSO As Object
Dim objTextFile As Object

'Initialisation des variables et création des objets
strSourceFile = "C:\monfichier.txt" 
Set objFSO = CreateObject("Scripting.FileSystemObject") 
Set objTextFile = objFSO.openTextFile(strSourceFile, 1) 

'Boucle sur les lignes du fichier
While Not objTextFile.AtEndOfStream 
      str = objTextFile.ReadLine
      cpt = cpt + CInt(str) 
Wend

'Fermeture des objets et libération de la mémoire
objTextFile.Close
Set objFSO = Nothing
Set objTextFile = Nothing

'Echo du résultat
wscript.echo cpt


Un conseil : Type toutes tes variables.


«Ce que l'on conçoit bien s'énonce clairement, Et les mots pour le dire arrivent aisément.»
Nicolas Boileau
0
nick_2428 Messages postés 31 Date d'inscription   Statut Membre Dernière intervention  
 
Salut, quand tu parle de typer toutes les variables, C'est bien la portion en gras que tu parle? C'est quoi l'impact de les avoirs ou non? J'ai tenté d'exécuter ce que tu m,as mis plus haut et ça me donne un message d'erreur. Le code attend la fin des instructions, pourtant si j'enlève la partie en gras, ça marche parfaitement. Résultat donné: 80

Dim cpt As Integer
Dim str As String
Dim strSourceFile As String
Dim objFSO As Object
Dim objTextFile As Object

'Création des objets
strSourceFile = "C:\monfichier.txt"
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.openTextFile(strSourceFile, 1)

'Boucle sur les lignes du fichier
While Not objTextFile.AtEndOfStream
str = objTextFile.ReadLine
cpt = cpt + CInt(str)
Wend

'Fermeture des objets et libération de la mémoire
objTextFile.Close
Set objFSO = Nothing
Set objTextFile = Nothing

'Echo du résultat
wscript.echo cpt


Merci du coup de main. Très apprécié.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Polux31 Messages postés 6917 Date d'inscription   Statut Membre Dernière intervention   1 204
 
Oui c'est ce qui est en gras.
Ça impact la mémoire, normalement (chaque variable occupant un espace mémoire défini par son type) ... je n'ai pas trop manipulé le VBS et je n'en connais pas toutes les spécificités ... peut être ne faut-il pas déclarer les variables, ce qui est possible.
0