LECTEUR DE CSV GRACE À ZEDGRAPH

Signaler
Messages postés
146
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
14 février 2013
-
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/50762-lecteur-de-csv-grace-a-zedgraph

Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
Salut, une petite astuce qui simplifie la vie
pour remplir les courbes, je passe désormais par une méthode de ma classe "gestion de compte bancaire" Cls_compte
1- je déclare une structure :
Public Structure tableau_bilan
Public _valeur() As Double
Public _date() As Double 'converti en OADate
End Structure ' structure d'un tableau de bilan mensuel pour graphique

2-j'écris le code qui vas bien pour la remplir
'----------------------------------------------------------------------
' Function qui retourne le bilan crédit/débit par mois (_valeur,_date)
' ou le bilan d'un budget par mois (_valeur,_date)
'----------------------------------------------------------------------
Public Function bilan() As tableau_bilan If Me.lignes.Count 0 Then bilan Nothing : Exit Function

' récupére le nombre d'année total du compte pour définir le nombre de _valeur
Dim premiére_an As Integer = Me.lignes(Me.lignes.Count - 1).L_date.Year
Dim derniére_an As Integer = Date.Now.Year
Dim nombre_an As Integer = derniére_an - premiére_an

' déclare un nouveau type de tableau_bilan
Dim _Bilan As New tableau_bilan
ReDim _Bilan._valeur(12 * (nombre_an + 1)) '+1 car il y a forcément une année au minimun
ReDim _Bilan._date(12 * (nombre_an + 1))

'débute une boucle pour le nombre d'année trouvé
For années As Integer = 0 To nombre_an
'pour toutes les lignes de mon compte chargé (en marche arriére donc step -1)
For ligne As Integer = Me.lignes.Count To 1 Step -1
'si l'année correspond
If Me.lignes(ligne - 1).L_date.Year = premiére_an + années Then

'puis pour chaque mois de l'année en cours
For mois As Integer = 1 To 12
' si le mois correspond
If mois = Me.lignes(ligne - 1).L_date.Month Then
' ajoute la valeur en euro
_Bilan._valeur((mois - 1) + (années * 12)) += Me.lignes(ligne - 1).L_credit - Me.lignes(ligne - 1).L_debit
' ajoute la date au milieu du mois
_Bilan._date((mois - 1) + (années * 12)) = Convert.ToDateTime(Me.lignes(ligne - 1).L_date.Year & "/" & _
Me.lignes(ligne - 1).L_date.Month & "/15").ToOADate

End If
Next mois

End If
Next ligne
Next années
Return _Bilan
End Function

3- dans ma form de visu des courbes je n'ai plus qu'a écrire :
'calcul et ajoute les points aux batons 'crédit/débit'
Dim monBilan As Cls_compte.tableau_bilan = Mon_compte.bilan()
' Création des batons
Dim mesBarres As BarItem
' batons 'crédit/débit'
mesBarres = myPane.AddBar("", monBilan._date, monBilan._valeur, Color.Transparent) 'Couleur_forms)

c'est vachement plus lisible une fois fait ;)

bonne prog à tous.
Messages postés
1172
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
28 septembre 2013
1
Merci claudetom pour ta participation. Cordialement ADN
Messages postés
115
Date d'inscription
jeudi 11 octobre 2001
Statut
Membre
Dernière intervention
15 octobre 2012

J'ai testé ce programme mais impossible de lire le CSV (format incompatible)
Solution à cause des options régional :
Ajout :
Dans load_courbes
Dim SeparateurDécimal As String = NumberFormatInfo.CurrentInfo.NumberDecimalSeparator
Pour chaque valeur qui est converti en double :
CDbl(valeur.Replace(",", SeparateurDécimal).Replace(".", SeparateurDécimal))

Après cela chargement OK
Bonne source
Messages postés
51
Date d'inscription
jeudi 2 juin 2011
Statut
Membre
Dernière intervention
1 août 2012

Maintenant il faut que j'impémente la partie des axes. Et désolé si c'est un peu codé en mode spaghetti, j'en apprends tout les jours sur ce VB.NET! Je suis donc ouvert à tous conseils permettant de m'améliorer.
Merci
Afficher les 45 commentaires