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

Bases de données Delphi Discussion :

Importer un fichier CSV dans un clientdataset ?


Sujet :

Bases de données Delphi

  1. #1
    Membre à l'essai
    Importer un fichier CSV dans un clientdataset ?
    Bonjour,

    J'ai une petite question simple : peut-on "importer/lire" dans un composant (type TClientDataSet) un fichier csv (afin que ce composant puisse lire les champs séparés par des points-virgules) ?
    En effet, j'aimerai obtenir le même principe qu'avec un TClientDataSet "lisant" un fichier XML.
    Je ne voudrais pas passer par une base de données ou autre (TStringList, ...).

    Merci d'avance pour votre aide.

  2. #2
    Membre éprouvé
    Bonjour et bienvenue sur le forum !

    Je dirais que tu peux importer ton csv dans un champ memo.
    Je m'en sers pour importer des csv de plus de 90000 lignes.
    Cela me permet de faire des corrections quand cela est nécessaire.

  3. #3
    Membre à l'essai
    Bonjour,

    Merci de votre réponse, mais dans ce cas je récupère mes champs et mes valeurs en écrivant du code alors qu'avec un ClientDataSet, il me semble qu'on peut parcourir facilement les enregistrements d'un fichier XML (next, first, last, ...).

  4. #4
    Membre à l'essai
    En fait, je veux juste lire le fichier csv (sans le modifier) facilement avec des commandes du type MonClientDataSet.first, MonClientDataSet.next, MonClientDataSet.last... (comme le composant TClientDataSet).

  5. #5
    Nouveau membre du Club
    Tu peux faire ça en lecture seule comme tu le souhaite avec un
    TADOConnection via ODBC et un driver texte

    Par code ça devrait faire un turc de se genre :
    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
     
    TADOConnection.ConnectionString <> 'Provider=MSDASQL.1;' +
          'Persist Security Info=False;' +
          'Extended Properties="DefaultDir=' + LeCheminCompletDeTonCSV + ';' +
          'Driver={Microsoft Text Driver (*.txt; *.csv)};' +
          'DriverId=27;' +
          'Extensions=txt,csv,tab,asc;' +
          'FIL=text;' +
          'FILEDSN=;' +
          'MaxBufferSize=2048;' +
          'MaxScanRows=25;' +
          'PageTimeout=5;' +
          'SafeTransactions=0;' +
          'Threads=3;' +
          'UID=admin;' +
          'UserCommitSync=Yes;"'


    apres tu utilise un ADoQuery et un DBGrid pour l'affichage

  6. #6
    Membre à l'essai
    Merci Philia pour ta réponse.
    Je viens de faire le test avec le code que tu m'as donné mais un message d'erreur apparaît à la connexion du composant TADOConnection :

    '[Microsoft][Pilote ODBC Texte]'(inconnu)' n'est pas un chemin d'accès valide. Assurer vous que le nom du chemin d'accès est correct et qu'une connexion est établie avec le serveur sur lequel réside le fichier'

    Ai-je oublié quelque chose ?

    Sinon, est-ce qu'un autre moyen existe que de passer par une connexion ODBC ?

  7. #7
    Membre expérimenté
    avec le BDE, le driver ODBC fonctionne.

    sinon, essaye un composant spécialisé :

    http://www.torry.net/pages.php?id=567

    Bloon
    A lire : Les règles du club
    Delphi : La FAQ - Articles

  8. #8
    Membre à l'essai
    Merci beaucoup Bloon, c'est exactement les composants que je recherchais
    Merci à tous pour vos réponses et bon développement...

###raw>template_hook.ano_emploi###