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

Windows Forms Discussion :

import csv et double quote (")


Sujet :

Windows Forms

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 25
    Points
    25
    Par défaut import csv et double quote (")
    Bonjour,
    J'essaye d'importer un .csv dans un dataset et de l'afficher dans un datagridview
    Voici le code d'import :

    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 Function GetCsvData(ByVal strFolderPath As String, ByVal strFileName As String) As DataTable
     
            Dim strConnString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & strFolderPath & ";Extended Properties=""text;HDR=YES;"""
     
            Dim conn As New OleDbConnection(strConnString)
     
            Try
                conn.Open()
                Dim cmd As New OleDbCommand("SELECT * FROM [" & strFileName & "]", conn)
                Dim da As New OleDbDataAdapter()
     
                da.SelectCommand = cmd
     
                da.Fill(ds)
                da.Dispose()
     
                Return ds.Tables(0)
            Catch
                Return Nothing
            Finally
                conn.Close()
            End Try
     
        End Function
    ça marche.....sauf sur cette ligne :

    ;;ERMITAGE DU PIC SAINT LOUP "TOUR DE PIERRES";2009;Bouteille;COTEAUX DU LANGUEDOC - PIC ST LOUP;Languedoc-Roussillon;Rouge;0,75;12;Vin;19,60;1;0;7,53;9,00;47;47;1;;;;;;0;0;;0; ; ; ; ; ; ;21966

    l'import ne marche avec les " de "TOUR DE PIERRES" même en délimitant le fichier avec point virgule dans schema.ini !!

    Comment résoudre ce problème ?

    Merci d'avance

    Guillaume

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    Bonsoir,
    le guillemet, dans un fichier CSV est un délimiteur de champs (facultatif).
    Quand il le rencontre il considère la chaine terminée, il poursuit mais ne trouve pas le séparateur de champs, le point-virgule et c'est le ...
    Alors il faut les doubler.
    Ex. : ERMITAGE DU PIC SAINT LOUP ""TOUR DE PIERRES""
    Une bonne pratique est d'utiliser les délimiteurs de champs, ainsi si la chaine contient des ; il n'y aura pas de problème.
    Ex. : "ERMITAGE DU PIC SAINT LOUP ""TOUR DE PIERRES""; un bon vin"

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 25
    Points
    25
    Par défaut
    Bonsoir,
    Merci pour ta réponse. Je me heurte à une autre problématique.
    Mon fichier initial semble être codé en ansi (notepad) donc voici ce que je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim contenufichier As String = System.IO.File.ReadAllText(ExeDirectory + "\" + System.IO.Path.GetFileName(TextBox1.Text))
            System.IO.File.WriteAllText(ExeDirectory + "\" + System.IO.Path.GetFileName(TextBox1.Text), contenufichier.Replace("""", """"""), System.Text.Encoding.Default)
    Le problème est que cela marche mais mes é sans remplacés par des ? et le fichier de sortie semble être en ansi aussi

    Merci encore

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 62
    Points : 25
    Points
    25
    Par défaut
    j'ai trouvé, si cela peut aider quelqu'un ... :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Dim contenufichier As String = System.IO.File.ReadAllText(ExeDirectory + "\" + System.IO.Path.GetFileName(TextBox1.Text), System.Text.Encoding.GetEncoding("ISO-8859-1"))
            System.IO.File.WriteAllText(ExeDirectory + "\" + System.IO.Path.GetFileName(TextBox1.Text), contenufichier.Replace("""", """"""), System.Text.Encoding.GetEncoding("ISO-8859-1"))

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

Discussions similaires

  1. Importation de données caractères avec quote
    Par caro92 dans le forum SAS Base
    Réponses: 3
    Dernier message: 25/11/2015, 09h59
  2. Import CSV sous Excel, garder les 0 inutile
    Par ePoX dans le forum Excel
    Réponses: 4
    Dernier message: 26/01/2009, 16h25
  3. Importer CSV dans MySQL
    Par The_freeman dans le forum Administration
    Réponses: 6
    Dernier message: 14/02/2006, 22h18
  4. import csv décimale
    Par gIch dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 13/12/2005, 12h46
  5. Importation CSV vers base de données
    Par Brice Yao dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/06/2005, 13h42

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