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 :

Lecture d'un fichier csv dans un programme VB.net


Sujet :

VB.NET

  1. #1
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 2
    Points : 1
    Points
    1
    Par défaut Lecture d'un fichier csv dans un programme VB.net
    Bonjour à tous !

    Je suis en train de développer un outil qui doit lire un fichier csv et stocker les informations
    dans un tableau. Ce fichier est composé de plusieurs lignes et de plusieurs colonnes.
    Je voudrais reproduire cette mise en forme dans mon tableau mais toutes les solutions
    que j'ai essayé me rangent les informations dans une seule ligne ou dans une seule colonne.
    Le fichier s'ouvrent parfaitement dans excel et la mise en page est correcte.
    Je suis étonnée d'avoir à galérer autant pour un problème qui semble aussi simple...
    J'aimerais une solution qui n'utilise pas excel. Est-ce que quelqu'un en aurait une ?

    Merci par avance pour vos réponse !

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .net - Office - Quadiant
    Inscrit en
    Février 2020
    Messages
    579
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loir et Cher (Centre)

    Informations professionnelles :
    Activité : Développeur .net - Office - Quadiant
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Février 2020
    Messages : 579
    Points : 1 067
    Points
    1 067
    Par défaut
    Bonjour,

    Comme c'est un CSV, il y a un séparateur.

    La manière la plus simple est de lire le fichier ligne par ligne et de splitter chaque ligne avec le séparateur, le tout à mettre dans un tableau et après tu en fais ce que tu veux.

    ONTAYG

  3. #3
    Nouveau Candidat au Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Gard (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2020
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Merci beaucoup pour votre réponse !
    Je suis débutante et je suis un peu perdu par conséquent ...
    Est-ce que vous auriez un exemple de code s'il vous plait ?

  4. #4
    Expert confirmé
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Citation Envoyé par Ashrani Voir le message
    Merci beaucoup pour votre réponse !
    Je suis débutante et je suis un peu perdu par conséquent ...
    Est-ce que vous auriez un exemple de code s'il vous plait ?
    Bonjour,

    Il n y a pas besoin d exemple il suffit simplement de chercher :

    Comment lire un fichier ligne par ligne
    Comment découper une chaîne de caractères avec séparateur

    😉

  5. #5
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour

    Pour lire un fichier .csv normalement constitue c.à.d :
    -délimiteur point-virgule


    il existe cet animal dédié dit "TextFieldParser"

    l'exemple code ci-après illustre son emploi pour restituer un array 2D correctement rempli provenant d'un fichier .csv issu d'un tableur Excel.

    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
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
     
     
    Imports Microsoft.VisualBasic.FileIO
    Imports System.Text
     
    Public Class Form1
        Private ArrFields(,) As String
        Private fileNameToRead As String = Nothing
        Private sb As StringBuilder
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            sb = New StringBuilder
            fileNameToRead = ObtientNomFichier()
            If Not String.IsNullOrEmpty(fileNameToRead) Then
                ArrFields = GetListRows(fileNameToRead)
                For irow As Integer = 0 To ArrFields.GetUpperBound(0)
                    For icol As Integer = 0 To ArrFields.GetUpperBound(1)
                        sb.Append(ArrFields(irow, icol).PadRight(5))
                    Next
                    sb.AppendLine()
                Next
     
     
            End If
            TextBox1.Text = sb.ToString
     
        End Sub
        Private Function GetListRows(path As String) As String(,)
            'open myreader to count  lines and columns
            Dim MyReader As New TextFieldParser(path)
            MyReader.SetDelimiters(";")
            Dim nbRow As Integer = MyReader.LineNumber - 1
            Dim nbCol As Integer = MyReader.ReadFields().Length - 1
            While Not MyReader.EndOfData
                nbRow = MyReader.LineNumber
                nbCol = MyReader.ReadFields().Length
            End While
            nbRow -= 1
            nbCol -= 1
            MyReader.Close()
            Dim arrStr(nbRow, nbCol) As String
     
            'reopen myreader to read lines
            MyReader = New TextFieldParser(path)
            MyReader.SetDelimiters(";")
     
            Dim currentRow As String()
            Dim i As Integer = 0
            While Not MyReader.EndOfData
                currentRow = MyReader.ReadFields()
                For j As Integer = 0 To currentRow.Length - 1
                    arrStr(i, j) = currentRow(j)
                Next
                i += 1
            End While
     
            MyReader.Close()
            Return arrStr
        End Function
        Private Function ObtientNomFichier() As String
            Dim fileName As String = Nothing
            OpenFileDialog1.Filter = "(files (*.csv)|*.csv"
     
            If OpenFileDialog1.ShowDialog = Windows.Forms.DialogResult.OK Then
                fileName = OpenFileDialog1.FileName
     
            End If
            Return fileName
        End Function
    End Class


    fichier csv exemple :

    id;num;txt
    1;5;five
    2;2;two
    3;4;four
    4;9;nine

    Un autre magasin plus approprie peut etre un datatable ou un class "custom" .
    bon code...

Discussions similaires

  1. Ouvrir un fichier csv dans Open Office par un programme VB6
    Par vincentc17 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 07/04/2015, 12h26
  2. Intégrer un fichier CSV dans mon programme
    Par houmad91 dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 19/03/2013, 15h58
  3. Réponses: 4
    Dernier message: 30/05/2008, 01h27
  4. Linges sautées dans "lecture" d'un fichier .csv
    Par Mymi dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/08/2006, 20h02
  5. Importer un fichier CSV dans un clientdataset ?
    Par mls dans le forum Bases de données
    Réponses: 7
    Dernier message: 15/04/2005, 12h35

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