begin process at 2012 02 14 12:56:01
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

Débutants

 > 

Envoyer données d'un fichier CSV dans un tableau


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Envoyer données d'un fichier CSV dans un tableau

vendredi 20 mars 2009 à 13:51:28 | Envoyer données d'un fichier CSV dans un tableau

romanosky35

Bonjour,
l'année dernière j'avais déjà eu recours à ce forum.. et cela m'a beaucoup aidé.
Merci encore, notamment à un certain "Casy". :)

Cette année j'ai un autre projet à faire.
J'aimerais savoir ceci :
Comment s'y prendre pour lire un CSV, qui se présente comme ceci :

                ;1991;1992;1993;......;2006
Allemagne;206;152;
France      ;215;452
Belgique;
...
...

Je dois utiliser la fonction streamreader (donc je sais qu'il faut importer IO)
et j'aimerais mettre ces données dans un tableau

Ensuite, j'aimerai qu'au chargement du form (et donc au chargement du fichier csv et à la suite de la "construction" du tableau) pouvoir utiliser les données qui sont dans le tableau, pour afficher des informations sur chaque pays, comme ceci :

On a un ComboBox dans lequel il y a les pays, et en sélectionnant un pays dans le ComboBox, les chiffres qui lui sont associés apparaissent.. dans des TextBox par exemple.(et pour ca je dois utiliser la commande "Select" ou "Select Case".. ou peut-être "If Case.." je ne sais plus..)

Mais il faut donc que cette recherche d'info (quand on sélectionne un pays) se fasse dans ce tableau.

Et.; petite question, comment je gère la "cellule" vide, en 1ère ligne, 1ère colonne ???

pour info, après cela, je vais utiliser ChartDirector avec les données de ce tableau... pour faire des graphiques (pour ceux qui ne connaissent pas Chart Director ;) )

Voilà, je ne sais pas si je suis assez clair, n'hésitez pas à me poser des questions si besoin.
Serait-il possible d'avoir des extraits de code de votre part ??
Mais que des choses très simples, très basiques (sans mauvais jeu de mot ;) ), ça vous prendra moins de temps à faire ^^ Je ne vous demande pas monts et merveilles mais juste un petit peu d'aide.

Merci d'avance pour vos réponses.
vendredi 20 mars 2009 à 14:38:28 | Re : Envoyer données d'un fichier CSV dans un tableau

TroXsA



Bonjour,

J'ai fais un petit exemple je sais pas si ça fonctionne car j'ai pas fait de teste dessus

    Private tdonnée As New ArrayList
_________________________________________________________________________________________
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim f As New StreamReader("monfichier.csv")

        Do Until f.Peek = -1 'Lecture du fichier ligne par ligne
            Dim MaLigne As String = f.ReadLine
            If MaLigne = "" Then
                Continue Do
            Else
                Dim sourcecsv() As String = MaLigne.Split(";")
                ComboBox1.Items.Add(sourcecsv(0)) ' on ajoute tout les pays dans la combo
                tdonnée.Add(MaLigne) ' on stock toute les donner lu dans un tableau général
            End If

        Loop
    End Sub
_________________________________________________________________________________________
    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        For i As Integer = 0 To tdonnée.Count - 1
            If tdonnée.Item(i).ToString.IndexOf(ComboBox1.Text) >= 0 Then
                Dim lecdonnées() As String = tdonnée.Item(i).ToString.Split(";")
                For j As Integer = 0 To lecdonnées.Count - 1 'lecture des donnée qui correspond au pays
                    MsgBox(lecdonnées(j)) 'lecture des données une par une
                Next
            End If
        Next
    End Sub
End Class
_________________________________________________________________________________________

Sa fait super plaisir de lire quelle un qui explique bien son problème :)

Cordialement,
vendredi 20 mars 2009 à 14:52:04 | Re : Envoyer données d'un fichier CSV dans un tableau

romanosky35

C vrai, j'ai bien écrit mon problème ?? ^^ Waw !
Et bien merci beaucoup !!! C'est sympa.

Et surtout merci pour cette réponse "rapide" (<- le mot est faible !! Mais comment vous faîtes ??!!!)

Je vais tester ça de suite... et je vous tiens au courant !

Merci encore !!


vendredi 20 mars 2009 à 15:35:17 | Re : Envoyer données d'un fichier CSV dans un tableau

romanosky35

Le chargement du Form fonctionne bien.

Mais pour la sélection dans le ComboBox... Et bien, en fait dans le code....
il me souligne :   lecdonnées.Count

en m'indiquant ceci : 'Count' n'est pas un membre de 'System.Array'

Une idée sur le problème ?

Merci d'avance!

vendredi 20 mars 2009 à 19:47:50 | Re : Envoyer données d'un fichier CSV dans un tableau

romanosky35

Bonsoir,

J'ai retrouvé ceci, cela ressemble plus à ce que je recherche en fait..

J'ai quelques questions par rapport à ce code :
quand je l'exécute, il me lit les données présentes dans mon fichier .csv, les mets dans un tableau, puis il prend les données de ce tableau et les mets dans un fichier .txt... c'est bien ça ?

Si je me trompe, pourriez-vous me donner quelques explications supplémentaires s'il vous plaît ?

Et si c'est bien le cas, comment je poursuis mon programme ?
Comment je fais pour aller chercher telle donnée, situé dans telle ligne et telle colonne
Est-ce que cela ressemble à : TabCar(numéroligne, numérocolonne),
auquel cas j'écrirais quelque chose comme :
sw.Writeline(TabCar(num..,num...))  ??

Je vous laisse regarder ce code, merci d'avance pour vos réponses :)
N'hésitez pas pour les questions si je ne suis pas assez précis dans mes explications !



Module Module1
    Sub Fichier_LireEcrire()
        '
        ' ----------------------------------------------------------------------
        '   Déclarations et initialisations des variables locales
        ' ----------------------------------------------------------------------
        '
        '       Fichiers
        '

        Dim NomFichierEntree As String = _
                "D:\Mes documents\" & _
                "Accidents.csv"
        Dim NomfichierSortie As String = _
                "D:\Mes documents\" & _
                "DonneesLues.txt"
        '
        '       Stream
        '

        Dim sr As StreamReader = New StreamReader(NomFichierEntree)
        Dim sw As StreamWriter = New StreamWriter(NomfichierSortie)
        '
        '       Variables "scalaires"
        '

        Dim LigneLue As String = Nothing
        Dim MaChaine As String = Nothing
        Dim CompteurDElement As Integer = 0
        '
        '       Variable tableau
        '

        Dim TabCar() As String = Nothing
        '
        '   Boucle de parcours du fichier
        '

        Do While sr.EndOfStream = False
            '
            '
            '

            LigneLue = sr.ReadLine()
            '
            '
            '

            ReDim Preserve TabCar(CompteurDElement)
            '
            '
            '

            TabCar(CompteurDElement) = LigneLue
            '
            '
            '

            CompteurDElement += 1
            '
        Loop
        '
        '   Ecriture des éléments contenus dans TabCar
        '   dans le fichier de sorti.
        '

        For i As Integer = 0 To TabCar.GetUpperBound(0)
            sw.WriteLine(TabCar(i))
        Next i
        '
        '   Fermeture des fichiers ouverts
        '

        sr.Close()
        sw.Close()
        '
        '----------------------------------------------------------------------
        '   Fin du sous-programme
        '----------------------------------------------------------------------
        '

    End Sub

End Module
vendredi 20 mars 2009 à 21:46:07 | Re : Envoyer données d'un fichier CSV dans un tableau

casy

Membre Club
Dsl, je n'ai pas trop le temps de t'expliquer le code que je donne, mais je t'invite à consulter l'aide pour le comprendre.

La première ligne est à mon avis, à ignorer car il semble qu'elle soit la ligne des entetes de colonnes. Elle ne contient donc pas de données en soi, si ce n'est l'année à laquelle correspond les données en dessous


        Public TabCode As String() = {}

        Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
                Dim sr As New System.IO.StreamReader("C:\temp\classeur1.csv")

                'Ignore la première ligne
                sr.ReadLine()

                Do While sr.EndOfStream = False
                        ReDim Preserve TabCode(TabCode.GetLength(0))
                        TabCode(TabCode.GetLength(0) - 1) = sr.ReadLine()
                Loop

                For As Integer To TabCode.GetUpperBound(0)
                        ComboBox1.Items.Add((TabCode(i).Split(";"c))(0))
                Next
                ComboBox1.SelectedIndex = 0
        End Sub

        Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
                Dim As Integer = ComboBox1.SelectedIndex
                TextBox1.Text = (TabCode(i).Split(";"c))(1)
                TextBox2.Text = (TabCode(i).Split(";"c))(2)
                TextBox3.Text = (TabCode(i).Split(";"c))(3)

        End Sub



---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]
vendredi 20 mars 2009 à 21:54:07 | Re : Envoyer données d'un fichier CSV dans un tableau

TroXsA



Bonjour,

Effectivement, le code fais la lecture puis écrit dans un texte ...
ReDim n'est plus utiliser dans le dot net il est su moins encore supporter mais chiant a utiliser (pardon pour le mot chiant)
Le module dans l'état ou il est sers a rien, enfin si, juste a lire le fichier CSV puis le mettre dans un texte.

Pour ce qui concerne le petit bout de code que j'ai donné il est possible qu'avec une version de visual studio moins recente a 2008 cela ne fonctionne pas !
il faudra changé "lecdonnées.Count" par "UBound(tdonnée)"
Je viens de faire le test avec le code que j'ai donné plus, cela fonctionne sans aucun probleme
je vais le redonner encore une fois dans son intégralité

____________________________________________________
Imports System.IO
____________________________________________________
Public Class Form1
    Private tdonnée As New ArrayList
____________________________________________________

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged

        For i As Integer = 0 To tdonnée.Count - 1
            If tdonnée.Item(i).ToString.IndexOf(ComboBox1.Text) >= 0 Then
                Dim lecdonnées() As String = tdonnée.Item(i).ToString.Split(";")
                For j As Integer = 1 To lecdonnées.Count - 1 'lecture des donnée qui correspond au pays
                    MsgBox(lecdonnées(j)) 'lecture des données une par une
                Next
            End If
        Next
    End Sub
____________________________________________________
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim f As New StreamReader("monfichier.csv")

        Do Until f.Peek = -1 'Lecture du fichier ligne par ligne
            Dim MaLigne As String = f.ReadLine
            If MaLigne = "" Then
                Continue Do
            Else
                Dim sourcecsv() As String = MaLigne.Split(";")
                ComboBox1.Items.Add(sourcecsv(0)) ' on ajoute tout les pays dans la combo
                tdonnée.Add(MaLigne) ' on stock toute les donner lu dans un tableau général
            End If

        Loop
    End Sub
End Class
____________________________________________________

Cordialement,
samedi 21 mars 2009 à 12:04:39 | Re : Envoyer données d'un fichier CSV dans un tableau

romanosky35

MERCI BEAUCOUP POUR CES 2 REPONSES !!!
Je vais tester tout ça rapidement...
A plus tard.
Et MERCI encore :)
samedi 21 mars 2009 à 12:27:18 | Re : Envoyer données d'un fichier CSV dans un tableau

romanosky35

Alors.. j'ai testé la réponse de casy, ça fonctionne à merveille !
Pour ta réponse TroXsa, désolé, j'ai encore des erreurs..

Néanmoins j'ai à peu près compris comment fonctionne vos 2 solutions, donc à un grand merci à vous 2 !!!!

Il se peut.. il y a même de grandes chances, pour que je vous sollicite à nouveau d'ici à quelques jours pour l'utilisation de mes données...
Je dois voir avec mon "équipe ; on va probablement utiliser les données pour faire des graphiques avec ChartDirector. Mais on nous a également parler de l'utilisation d'un Datagrid, dans lequel on affichera les données du csv, etc...

Bref ! Tout ça est encore flou. En tous cas, encore merci à vous 2.

Romain.

dimanche 22 mars 2009 à 20:15:00 | Re : Envoyer données d'un fichier CSV dans un tableau

TroXsA



Bonjour,

Ya pas de quoi :) mais j'aimerais comprendre ou est l'erreur avec le code que je tes donnée ?
Tu as quelle version de VB ?





Cordialement,

1 2

Cette discussion est classée dans : données, tableau, utiliser, csv, pays


Répondre à ce message

Sujets en rapport avec ce message

Utiliser Fichiers csv [ par Ricardo69 ] Bonjour,Je dois réaliser un programme en VBA sur excel me permettant de charger plusieurs fichiers csv (qui contiennent chacun des données différentes Affichage de données à partir d'un export en CSV [ par aliwoodchingom ] Bonjour à tous, nouveau sur le forum de vbfrance, je tiens tout d'abord à me présenter : Je suis actuellement en stage pour valider une formation Importation fichier CSV et stockage des données [ par dudu1513 ] Bonjour, Je suis nouveau dans le monde de .NET et je veux bien chercher par moi même mais là j'en ai marre... Après avoir parcouru tous les forum pos Tableau ou base de donné [ par akdmks ] Salut a tous !! je suis étudiant et j'ai un projet industriel a faire en VB, quelle chance !! En gros, je pars d'un fichier texte avec des valeurs de remplir un tableau à partir d'un fichier csv [ par debutantvba ] Bonjour à tous,je vous expose mon problème et vous remercie à l'avance de vos éventuelles réponses qui seront les bienvenues je vous assure !j'ai un f coller un tableau supérieur à 256 colonnes dans Excel [ par Relax62 ] Bonjour,Me voici aujourd'hui confronté à un sérieux problème.Je dois récupérer des données venant d'une application hôte d'Excel. J'arrive à récupér Placer éléments .Csv dans un tableau dynamique [ par jarod42000 ] Bonjour à tous!Je débute en programmation et notamment en VB.je souhaiterai placer des éléments d'un fichier cvs dans un tableau dynamique afin de m'e Liaison dynamique avec des combobox [ par adrienbayer ] Bonjour,Voila ma question :sur le chargement d'un formulaire, je vais charger des données dans des combobox a partir de ma basedans ma base je stock l trier tableau excel [ par fthem ] Salut à tous, j'ai un fichier excell avec dans la colonne A des noms que je retrouve plusieurs fois en nombres diférents, et dans la colone B la même


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,608 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales