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

Composants VCL Delphi Discussion :

Ouvrir et lire un fichier .csv


Sujet :

Composants VCL Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut Ouvrir et lire un fichier .csv
    Bonjour,

    je voudrais savoir quelles sont les commandes pour ouvrir, lire ligne par ligne, et fermer un fichier excel .csv en delphi. Merci,

    Arthur

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 086
    Par défaut
    Il n'y a pas de commande spécifique au CSV, tu peux prendre la fonction Explode sur Phidel.com (parti units), pour splitter une ligne csv, lu par readLn par exemple (quoi que peu posé aussi des problèmes aussi avec les retour charriot dans une valeur), une TStringList.LoadFromFile, me semble peu fiable pour les même raison, ... je conseille le readln si il n'y a pas de retour charriot dans les valeurs ...

    Donc sinon, un TFileStream ou un BlockRead sur un File of Byte, qui lit le fichier en détectant les quote, les ; et retour charriot ...

    sinon, tu cherche sur le web, tu as un bun TCSVReader qui doit existé non ?
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 210
    Par défaut
    ok merci je vais chercher un parser sur le net

  4. #4
    Membre très actif
    Avatar de octal
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    441
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 441
    Par défaut
    tu peux simplement utiliser une TStringList avec son LoadFromFile(...).
    Après tu parses tes lignes une à une pour séparer les champs CSV !
    Il me semble aussi (mais à vérifier) que la JVCL proposait un fournisseur de donnée CSV qui pouvait alimenter un TDataSet ... à vérifier je m'en souvient plus exactement.
    Cordialement
    Octal

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Août 2004
    Messages
    696
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2004
    Messages : 696
    Par défaut
    Bonjour,

    Un fichier CSV n'est rien d'autre qu'un fichier texte avec des séprateurs, je te conseil d'utiliser les fonction pascal d'ouverture, lecture et fermeture des fichier texte.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    VAR
     
    F:TextFile;
    begin
    {$I-}
    assignFile(F,FICHIER.CSV);
    FileMode := 0;
    Reset(F);
    {$I+}
    repeat     
    ReadLn(F,Ligne);
    Until EOF(F);
    CloseFile(F);
    C'est super simple d'utilisation.

    Cordialement
    Qays

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 086
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 14 086
    Par défaut
    Avec la StringList, il faut bien spécifier le Delimiter et le QuoteChar, ... personnellement, j'ai eu quelques effets de bords, avec des retours charriot DANS une valeur,

    idem avec le ReadLn, faut gérer les retour charriot encadrés de quote ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

Discussions similaires

  1. ouvrir et lire un fichier "csv"
    Par washh dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 11/12/2008, 15h09
  2. Lire un fichier CSV ou XLS de la même manière
    Par Linio dans le forum Macros et VBA Excel
    Réponses: 1
    Dernier message: 18/07/2007, 15h12
  3. Ouvrir et modifier plusieurs fichiers .csv.
    Par jackfred dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 17/07/2007, 12h06
  4. Réponses: 12
    Dernier message: 12/04/2006, 10h20
  5. Lire un fichier CSV/XLS
    Par Doneve dans le forum ASP
    Réponses: 3
    Dernier message: 04/10/2005, 17h34

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