Somme des lignes d'un tableau.

Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008 - 2 juil. 2007 à 23:04
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 - 4 juil. 2007 à 07:58
Bonjour à tous.
J'ai crée un programme qui note dans un tableau de 10 lignes l'espace disque disponnible sur chaque disque dur de l'ordinateur. Au final, je voudrais afficher l'espace disque total disponnible, donc la somme de toutes les lignes de mon tableau.
Je voudrais savoir comment faire pour ajouter toutes les lignes de mon tableau.
Merci d'avance.

23 réponses

jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
3 juil. 2007 à 07:51
Salut,
Et bien il faut faire une boucle.
Essaie un truc du style

Dim TesValeurs(9) As Long

       TesValeurs(0) = 500
       TesValeurs(1) = 156
       TesValeurs(2) = 1599
       TesValeurs(3) = 156
       TesValeurs(4) = 1566789
       TesValeurs(5) = 8749
       TesValeurs(6) = 498498
       TesValeurs(7) = 498400
       TesValeurs(8) = 654
       TesValeurs(9) = 500
       Dim Somme As Double
       For Each Elem As Long In TesValeurs
           Somme += Elem
       Next

       MsgBox (Somme), ----
[code.aspx?ID=41455 By Renfield]

@+: Ju£i?n
Pensez: Réponse acceptée
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
3 juil. 2007 à 07:58
Bonour (et salut à Julien)


Puisque Marrneus73 est bien obligé d'aller "pêcher" l'espace disponible de chaque disque (un par un) d'abord, , c'est à l'occasion de cette pêche qu'il lui suffit d'incrémenter une variable espace_total. Celà évitera de faire une boucle in fine.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
3 juil. 2007 à 08:14
Re,
Salut [auteurdetail.aspx?ID=615490 jmfmarques], Effectivement vu sous cet angle, il faut avouer que c'est une meilleure solution.

@+: Ju£i?n
Pensez: Réponse acceptée
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
3 juil. 2007 à 09:00
En effet, j'ai crée une variable i avec une boucle. Cette variable s'incrémente pour chaque lecteur présent sur le disque où il est possible de récuperer son espace libre.
Ces valeurs sont stockées dans un tableau à 1 colone et 10 lignes (Une ligne pour chaque lecteur). Mais je n'arrive pas à faire la somme de toutes ces lignes.
Comment faire ?
Merci d'avance.
0

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

Posez votre question
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
3 juil. 2007 à 09:00
En effet, j'ai crée une variable i avec une boucle. Cette variable s'incrémente pour chaque lecteur présent sur le disque où il est possible de récuperer son espace libre.
Ces valeurs sont stockées dans un tableau à 1 colone et 10 lignes (Une ligne pour chaque lecteur). Mais je n'arrive pas à faire la somme de toutes ces lignes.
Comment faire ?
Merci d'avance.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
3 juil. 2007 à 09:04
Salut,
Et bien mon premier post te décrit comment faire. encore faut il le tester un minimum en VB.NET 2005 ou 2003.

@+: Ju£i?n
Pensez: Réponse acceptée
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
3 juil. 2007 à 09:16
"Cette variable s'incrémente pour chaque lecteur présent sur le disque où il est possible de récuperer son espace libre."


Comprends plus, là !
Tu l'as donc déjà, cette somme (si tu as vraimen,t fait comme çà)...
Pourquoi veux-tu donc la recalculer ? (elle l'est déjà !)
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
3 juil. 2007 à 09:27
Ben je ne comprends pas, je ne pense pas avoir cette somme. Pour voir j'ai demandé d'afficher chaque ligne du tableau et chaque calcul dans une messageBox ! Voila le résultat.
Premier message, celui qui me dit vous disposez de 20,825462541 Go d'espace disponnible. Le second provient du tableau. La messageBox affiche le nombre 21. Idem pour mon second DD sauf que le système me dit 7.745985214 Go et la messageBox affiche 8.
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
3 juil. 2007 à 10:22
Sans ton code, celà va être difficile !
Donne nous les éléments essentiels (pas tout) :
- code de déclaration de ta variable
.
.
- code d'insertion dans le tableau pour chaque lecteur
.
.
-. code qui précède ta msgbox.

mets comme moi des ... pour le reste.
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
3 juil. 2007 à 10:52
Voila mon code:

Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        For Each Drive As System.IO.DriveInfo In System.IO.DriveInfo.GetDrives()
            If Drive.IsReady Then
                Dim f As String
                f = Drive.AvailableFreeSpace
                Dim j As String
                j = f / 1000000000
                Dim poids_go As Decimal
                poids_go = TextBox5.Text

                Dim somme As Decimal
                Dim i As String
                i = 0
                Dim A(0 To 10) As Integer
                While i < 10
                    i = i + 1
                    A(i) = j
                End While

                If j > poids_go Then
                    System.Windows.Forms.MessageBox.Show("Vous disposez de : " + j + " Go d'espace libre sur le lecteur : " + Drive.Name + "Donc vous pouvez installer votre application ici.")
                    somme = 'c'est là que je ne sais pas quoi mettre !

                Else

                End If

            End If

        Next
    End Sub

PS: Comment on fait pour mettre son code en couleur dans ses messages ?
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
3 juil. 2007 à 11:05
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        For Each Drive As System.IO.DriveInfo In System.IO.DriveInfo.GetDrives()
            If Drive.IsReady Then
                Dim f As long, somme as long 'ou le type qui remplace long en VB.Net
                f = Drive.AvailableFreeSpace
                somme = somme + f
                Dim j As double ' ou le type qui remplace double en VB.Net
                j = f / 1000000000
                Dim poids_go As Decimal
                poids_go = TextBox5.Text

              ''''''''''''''''''' ANNULE ICI  Dim somme As Decimal
                Dim i As String
                i = 0
                Dim A(0 To 10) As Integer
                While i < 10
                    i = i + 1
                    A(i) = j
                End While

                If j > poids_go Then
                    System.Windows.Forms.MessageBox.Show("Vous disposez de : " + j + " Go d'espace libre sur le lecteur : " + Drive.Name + "Donc vous pouvez installer votre application ici.")
                    ''''somme = 'c'est là que je ne sais pas quoi mettre !
                   msgbox somme ' (déjà calculée ...) -remplace msgbox par la syntaxe qui va sous VB.Net...
                Else

                End If

            End If

        Next
    End Sub
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
3 juil. 2007 à 11:38
Merci bien.
Mais mon programme merde quand je déclare: "j As Double" .
Le message : "La conversion de la chaîne "Vous disposez de : " en type 'Double' n'est pas valide."
?!
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
3 juil. 2007 à 11:42
Au fait c'est quoi une variable "Double" ? J'ai regardé sur ce site qui est devenu mon nouveau site de chevet et je ne voit toujours pas !
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
3 juil. 2007 à 11:46
Je ne connais pas VB.Net

C'est peut-être Decimal ...alors, sous Net ...
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
3 juil. 2007 à 11:47
Et sinon, pourquoi mon programme merde quand je déclare: "j As Double" .
Le message d'erreur : "La conversion de la chaîne "Vous disposez de : " en type 'Double' n'est pas valide."
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
3 juil. 2007 à 11:52
Mets les types (je te l'ai déjà dit) qui conviennent à VB.Net, mais pas des Strings, hein ?
Pour le reste : le mécanisme est là ! Ne modifie donc que les types (pou NET, donc) de tes chiffres (ce qu'il faut pour un entier, ce qu'il faut pour un nombre décimal).
Dur Dur ...
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
3 juil. 2007 à 12:04
Derniere chose:
Avec le truc "somme=somme+j" ça marche mais le pb c'est que le programme m'affiche autant de message box qu'il y a de lecteurs, avec la somme de l'espace disque des lecteurs déjà interrogés. . Moi je veus juste la somme finale.
0
TeBeCo Messages postés 467 Date d'inscription lundi 24 juin 2002 Statut Membre Dernière intervention 9 mars 2011
3 juil. 2007 à 13:10
'ou le type qui remplace long en VB.Net <=== Integer :p sous vb.net le type Integer est equivalent au Long de VB6




TeBeCo
0
jmfmarques Messages postés 7666 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 27
3 juil. 2007 à 14:34
Moi, là, tu vois, je te dis Bye-Bye !
Si tu ne comprends pas que msgbox n'est là que pour TE permettre de voir évoluer somme (et que si tu ne t'en sers pas, somme n'en continue pas moins, pour autant, à être incrémentée...), je te laisse à tes rêveries.
0
Marneus73 Messages postés 344 Date d'inscription mercredi 24 janvier 2007 Statut Membre Dernière intervention 27 octobre 2008
3 juil. 2007 à 15:54
Ca je l'avais bien vu mais, je voudrais quand meme afficher l'espace total disponnibles a l'utilisateur, sinon mon programme sert à rien !!!
0
Rejoignez-nous