IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Lire mon CSV (graphe) ! (chart, etc..) [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut Lire mon CSV (graphe) ! (chart, etc..)
    Bonjour à tous !

    Alors voilà j'ai réussi à créer un graphe :

    Nom : graphecsv.PNG
Affichages : 338
Taille : 67,9 Ko

    Mais ce sont des valeurs en "durs" il n'y a rien de dynamique car c'est moi qui a rentré les valeurs.
    Ce que je cherche a faire, c'est de rendre mon programme dynamique, dans le sens ou je veux importer les données de mon csv qui ressemble à ça :

    Nom : donnéesCSV.PNG
Affichages : 295
Taille : 14,9 Ko

    Voici mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    	Public Sub showChart()
     
    		'Dim file1 As String = File.ReadAllText("C:\Users\ism\Documents\SharpDevelop Projects\D_test\test.csv")
    		'Forms.MessageBox.Show(file1)
     
    	Dim MyValue As New List(Of KeyValuePair(Of Integer, Double))()
            MyValue.Add(New KeyValuePair(Of Integer, Double)(0, -0.007505519))
            MyValue.Add(New KeyValuePair(Of Integer, Double)(50, -0.00397351))
            MyValue.Add(New KeyValuePair(Of Integer, Double)(100, 0.0008830022))
     
            MyValue.Add(New KeyValuePair(Of Integer, Double)(110, 0.01324503))
            MyValue.Add(New KeyValuePair(Of Integer, Double)(115, 0.004415011))
            MyValue.Add(New KeyValuePair(Of Integer, Double)(120, 0.006181016))
            MyValue.Add(New KeyValuePair(Of Integer, Double)(125, 0.08609272))
            MyValue.Add(New KeyValuePair(Of Integer, Double)(130, 0.5209713))
            MyValue.Add(New KeyValuePair(Of Integer, Double)(135, 0.2980132))
            MyValue.Add(New KeyValuePair(Of Integer, Double)(140, 0.1205298))      
     
            MyValue.Add(New KeyValuePair(Of Integer, Double)(150, 0.04238411))
            MyValue.Add(New KeyValuePair(Of Integer, Double)(200, 0.007505519))
            MyValue.Add(New KeyValuePair(Of Integer, Double)(250, 0.008388521))
     
    		Chart.DataContext = MyValue
    End Sub
    Quelqu'un pourrait m'aider ? Avec un exemple ou bien me guider ?

    Merci à tous !

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    https://www.developpez.net/forums/d1...m/#post9795931

    Ici c'est du vba (juste pour une idée), tu peux requêter sur un csv. Tu reconstruis une connexion sur ton répertoire en .net, récupères u dataset ou un datatable et tu alimentes ton graph.

    Attention au shema.ini.

    Tu peux également t'intéresser au LINQ.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Bonjour dysorthographie,

    Merci premièrement pour ta réponse. Mon niveau est faible je viens de commencer le Vb.net(et le dev en général...), donc oui je trouve tout ça un peu compliqué pour moi !

    Pourrais-tu, ou quelqu'un d'autre m'expliquer plus en détail ou me donner des exemples simples ?

    Merci pour vos réponses !

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    MyValue.Add(New KeyValuePair(Of Integer, Double)(0, -0.007505519))
    A la place des valeurs :
    (0, -0.007505519)
    il faut que je trouve un moyen de mettre quelque chose, donc une variable par exemple (quelque chose de dynamique) ces variables seraient en relation direct avec mon CSV, une variable pour une colonne par exemple. Mais comment faire ? Je tourne en rond je ne trouve pas.

    Quelqu'un pour m'aiguiller svp ??


  5. #5
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Avec mes modestes compétences de développeur du dimanche :

    Soit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim MyValue As New Dictionary(Of Integer, Double)
    Dim MyColValue As New Dictionary(Of Integer, Dictionary(Of Integer, Double))
     
    MyValue.Add(0, -0.007505519)
    MyColValue.Add(1, MyValue)

    Soit tu créer une Class :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Public Class InfoPoint
      Public Property ColExcel as Integer
      Public Property X as Integer
      Public Property Y as Double
    End Class
    Ensuite tu utilises une List Of :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Dim MyPointsList as New List(Of InfoPoint)
    Dim MyInfoPoint as New InfoPoint
    With MyInfoPoint
      ColExcel = 1
      X = 0
      Y = -0.007505519
    End With
    MyPointsList.Add(MyInfoPoint)
     
    '[...]
     
    For Each Point as InfoPoint in MyPointsList
      'Ecriture dans Excel
    Next
    En espérant t'avoir aider...

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Avec mes modestes compétences de développeur du dimanche
    Non non tes compétences ne le sont pas !

    En espérant t'avoir aider...
    Oui tu m'as aidé et je t'en remercie.

    Cependant ton programme, tu me dis si je me trompe, mais je crois qu'il écrit dans un csv or moi c'est l'inverse je veux lire mon csv et l’afficher en graphe de cette manière :

    Nom : graphecsv.PNG
Affichages : 303
Taille : 67,9 Ko

  7. #7

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Merci dysorthographie ça m'a un peu aidé !

    Voici pour le moment ce que j'utilise (c'est un code que j'ai trouvé mais je n'arrive pas à afficher ma courbe)
    J'aimerai savoir ce que je dois faire, j'ai peut être mal compris le code....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    Private Sub showChart()
     
            Dim TextFileReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\Users\ism\Documents\SharpDevelop Projects\Dig\bin\Debug\Measurements\b1.csv")
     
    	    TextFileReader.TextFieldType = Microsoft.VisualBasic.FileIO.FieldType.Delimited
    	    TextFileReader.SetDelimiters(";")
     
    	    Dim TextFileTable As DataTable = Nothing
     
    	    Dim Column As DataColumn
    	    Dim Row As DataRow
                Dim UpperBound As Int32
    	    Dim ColumnCount As Int32
    	    Dim CurrentRow As String()
     
    	    While Not TextFileReader.EndOfData
    	    	Try
    	    		CurrentRow = TextFileReader.ReadFields()
    	    		If Not CurrentRow Is Nothing Then
    	    		''# Check if DataTable has been created
    	                If TextFileTable Is Nothing Then
    	                    TextFileTable = New DataTable("TextFileTable")
    	                    ''# Get number of columns
    	                    UpperBound = CurrentRow.GetUpperBound(0)
    	                    ''# Create new DataTable
    	                    For ColumnCount = 0 To UpperBound
    	                        Column = New DataColumn()
    	                        Column.DataType = System.Type.GetType("System.String")
    	                        Column.ColumnName = "Column" & ColumnCount
    	                        Column.Caption = "Column" & ColumnCount
    	                        Column.ReadOnly = True
    	                        Column.Unique = False
    	                        TextFileTable.Columns.Add(Column)
    	                        Next
    	                End If
    	                Row = TextFileTable.NewRow
    	                For ColumnCount = 0 To UpperBound
    	                    Row("Column" & ColumnCount) = CurrentRow(ColumnCount).ToString
    	                Next
    	                TextFileTable.Rows.Add(Row)
    	    		End If
     
    	    	Catch ex As Microsoft.VisualBasic.FileIO.MalformedLineException
    	    		Forms.MessageBox.Show("Line" & ex.Message & "is not valid and will be skipped.")
    	    	End Try
    	    End While
    	    	        MyValue.Add(New KeyValuePair(Of Integer, Double)())'(X, Y))
    	                Chart.DataContext = TextFileReader 
        End Sub
    J'utilisais ça pour afficher en dur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
                                    Dim MyValue As New List(Of KeyValuePair(Of Integer, Double))()
                                    MyValue.Add(New KeyValuePair(Of Integer, Double)(1, 0.12251421))
    	                        Chart.DataContext = MyValue
    Si quelqu'un peut m'aiguiller svp je sèche, je trouve ça trop dur pour mon niveau... (alternant)

  9. #9
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Salut,
    Essaye cela :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Dim MyValue As New List(Of KeyValuePair(Of Integer, Double))
    Dim Separator As Char = CChar(";")
    For Each Line As String In File.ReadAllLines("Chemin_complet_de_ton_fichier.csv")
        MyValue.Add(New KeyValuePair(Of Integer, Double)(Line.Split(Separator)(0), Line.Split(Separator)(1)))
    Next
    Chart.DataContext = MyValue
    @+

  10. #10
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Merci beaucoup @r.morel !

    Je vais essayer et je reviens poster.

    Merci énormément pour le temps consacré !

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2017
    Messages
    150
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2017
    Messages : 150
    Par défaut
    Merci r.morel !

    Je viens de tester et ça fonctionne très bien.
    J'avais des warnings concernant des problèmes de conversions (string ==> int etc...).

    Donc j'ai rajouté CInt et CDbl :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    	Dim MyValue As New List(Of KeyValuePair(Of Integer, Double))()
    		Dim Separator As Char = CChar(";")
    		For Each Line As String In System.IO.File.ReadAllLines("chemin du Csv") (===> je compte changer "chemin du csv" ceci afin de pouvoir importer un csv que j'aurai sélectionné au préalable dans une autre fenêtre et non pas en dur comme ici)
    		    MyValue.Add(New KeyValuePair(Of Integer, Double)(CInt(Line.Split(Separator)(0)), CDbl(Line.Split(Separator)(1))))
    		Next
    		Chart.DataContext = MyValue

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Je débute -> Conseils sur mon prog (code, lisibilité etc.)
    Par asxasx dans le forum Interfaces Graphiques en Java
    Réponses: 5
    Dernier message: 22/03/2007, 08h31
  2. [CSV] Conversion des é è etc. mysql
    Par yveslens dans le forum Langage
    Réponses: 5
    Dernier message: 21/02/2007, 12h20
  3. lire fichier csv et en extraire des infos
    Par isaglada dans le forum VBScript
    Réponses: 2
    Dernier message: 12/02/2007, 13h04
  4. Lire un CSV et répartir les données
    Par Titouf dans le forum Shell et commandes GNU
    Réponses: 3
    Dernier message: 26/10/2006, 14h16
  5. impossible de lire mon hach
    Par kowalsky dans le forum Langage
    Réponses: 5
    Dernier message: 01/03/2006, 12h45

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo