Somme d'une colonne de chiffres d'un fichier texte [Résolu]

Messages postés
56
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2008
- - Dernière réponse : cs_casy
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
- 9 août 2006 à 11:15
Bonjour à tous,


Voici mon pitit problème:


J'ai un fichier texte (nommé par la suite "A.txt") regroupant plusieurs valeurs d'une acquisition et réparties en colonnes, en gros le fichier texte ressemble à çà:


(1ère ligne)               X         Y         Z
(2ème ligne)             1          2          3
(3ème ligne)             0          3          4
(4ème ligne)             5          1          5
(5ème ligne)             2          7          9

J'voudrais être capable de faire la somme de toute la colonne Z de la ligne 2 à la ligne 4 (ici 12)

Mon code est le suivant :

Private Sub Command1_Click()
Dim numFile         As Long
Dim sTemp           As String
Dim iCpt            As Integer
Dim dSomme          As Double


    numFile = FreeFile
    iCpt = 0
    dSomme = 0
    Open "C:\A.txt" ForInput As #numFile


        While Not EOF(numFile)
            iCpt = iCpt + 1
            Line Input #numFile, sTemp
            If (iCpt >= 2) And (iCpt <= 4) Then   '2 et 4 font référence aux lignes
                dSomme = dSomme + Val(sTemp)
            End If
        Wend
    Close #numFile
    Text1.Text = CStr(dSomme)   'affiche le résultat dans une textbox
End Sub

Le problème avec mon code viens du faites que je n'arrive pas à lui dire "va à la colonne n°3 ou Z" ; là il me fait la somme ligne par ligne (c'est à dire ici : 123+034+515=672).

Si quelqu'un à une idée, il est le bienvenue
Merci d'avance
Afficher la suite 

6 réponses

Meilleure réponse
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
45
3
Merci
Re,
Dans ce cas ce n est pas
TabVal = Split(sTemp, vbTab)

TabVal = Split(sTemp, vbTab & vbTab)
@+, Julien

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 193 internautes nous ont dit merci ce mois-ci

Commenter la réponse de jrivet
Messages postés
56
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2008
0
Merci
J'ai oublié de préciser que je suis en VB6...
Commenter la réponse de scoboy
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
45
0
Merci
Salut,
Essaie ceci
Pour que cela fonctionne il faut ETRE SUR que tes chiffres soietn séparés TOUJOURS par une Tabulation
sinon la fonction Split te retourneras des truc faux.
Private Sub Command1_Click() 
Dim numFile         As Long 
Dim sTemp           As String 
Dim iCpt            As Integer 
Dim dSomme          As Double 
Dim TabVal 
    numFile =  FreeFile 
    iCpt = 0 
    dSomme = 0 
    Open "C:\1.txt" For Input As #numFile 

        While Not  EOF (numFile) 
            iCpt  = iCpt + 1 
            Line Input #numFile, sTemp 
            If (iCpt >=  2) And (iCpt <= 4) Then    '2 et 4 font référence aux lignes
                TabVal = Split(sTemp, vbTab) 
                dSomme = dSomme +  TabVal(2)  
            End If 
        Wend 
    Close #numFile 
    Text1.Text  = CStr(dSomme)    'affiche le résultat dans une textbox
End Sub 
 

<small> Coloration syntaxique automatique [AFCK]</small>
       

@+, Julien
Pensez:
Commenter la réponse de jrivet
Messages postés
56
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2008
0
Merci
Merci jrivet,

Les chiffres sont séparés par 2 tabulations donc j'ai effectivement une erreur mais qui devrait sûrement être simple à corriger, qu'en penses tu?
Commenter la réponse de scoboy
Messages postés
56
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2008
0
Merci
Merci jrivet pour ton aide
Ca fonctionne que je le voulais
Commenter la réponse de scoboy
Messages postés
7745
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
28
0
Merci
Ou aussi

TabVal = Split(sTemp, vbTab)
dSomme = dSomme + TabVal(4)

Sevyc64  (alias Casy) <hr align ="center" size="2" width="100%" /><stron></stron># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy