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

Signaler
Messages postés
56
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2008
-
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
-
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

6 réponses

Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
48
Re,
Dans ce cas ce n est pas
TabVal = Split(sTemp, vbTab)

TabVal = Split(sTemp, vbTab & vbTab)
@+, Julien
Messages postés
56
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2008

J'ai oublié de préciser que je suis en VB6...
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
48
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:
Messages postés
56
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2008

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?
Messages postés
56
Date d'inscription
mardi 28 mars 2006
Statut
Membre
Dernière intervention
17 janvier 2008

Merci jrivet pour ton aide
Ca fonctionne que je le voulais
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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 #