Somme d'une colonne de chiffres d'un fichier texte

Résolu
scoboy Messages postés 56 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 17 janvier 2008 - 9 août 2006 à 10:41
cs_casy Messages postés 7741 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

6 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 août 2006 à 11:09
Re,
Dans ce cas ce n est pas
TabVal = Split(sTemp, vbTab)

TabVal = Split(sTemp, vbTab & vbTab)
@+, Julien
3
scoboy Messages postés 56 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 17 janvier 2008
9 août 2006 à 10:42
J'ai oublié de préciser que je suis en VB6...
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
9 août 2006 à 10: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:
0
scoboy Messages postés 56 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 17 janvier 2008
9 août 2006 à 11:06
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?
0

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

Posez votre question
scoboy Messages postés 56 Date d'inscription mardi 28 mars 2006 Statut Membre Dernière intervention 17 janvier 2008
9 août 2006 à 11:12
Merci jrivet pour ton aide
Ca fonctionne que je le voulais
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
9 août 2006 à 11:15
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 #
0
Rejoignez-nous