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

Delphi Discussion :

Conversion de longs fichiers texte en CSV


Sujet :

Delphi

  1. #21
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Citation Envoyé par Barbibulle Voir le message
    Ou encore le composant gratuit Jedi : TJvCsvDataSet qui permet de lire un fichier csv (ou même ton fichier texte séparé par des tabulations) et après tu y accèdes via les composants DB, les fields etc...
    http://wiki.delphi-jedi.org/wiki/JVC...:TJvCsvDataSet

    Qui a mon avis pourrait être ta meilleure piste :p (tu n'as même plus besoin de ta phase de conversion des tab en ; )

    Je testerai ce dernier en premier ! (enfin je me comprend )

  2. #22
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut TJvCsvDataSet
    j'ai déjà testé le TJvCsvDataSet
    et il plante, car trop de ceci ou de celà..
    @+

  3. #23
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Effectivement, je n'ai pas la dernière version du composant (et sourceforge est en carafe) mais il consomme énormément de mémoire. J'ai testé sur une fichier texte d'un million de lignes (environ 12 Mo seulement) et il m'a gentiment fait un "Out of memory". L'application est monté a plus d'un Go puis est descendu à 100Mo pour remonter lentement vers les 400Mo et me lacher le message...

  4. #24
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut suite...
    Oui, dommage que le TJvCsvDataSet plante car c'était le plus aboutit.
    peut-être y a t-il un moyen de modifier ce composant afin de lui faire déborder ses limites ?

    le TdxMemData, quant à lui, fonctionne à l'envers de ce que je souhaite faire.
    En effet, il faut d'abord créer les colonnes et ensuite faire un load des données m'obligeant donc
    à détecter, dans un premier le nombre et le nom des champs, puis avec une procédure les créer dans le TdxMemData
    et enfin, importer les données avec un load, mais bien sûr sans la première ligne des champs !
    ce qui au final, n'est pas très pratique.

    et à propos de la classe TMemoryDataSet, le lien de téléchargement ne fonctionne plus..
    Si on résume, il ne me reste plus grand chose à part créer des tables.
    A ce propos, comme, j'ai une quinzaine de fichiers, ce qui est peu, mais en revanche, cela représente beaucoup de champs
    plusieurs centaines environ, et cela me dérange de me coltiner leurs créations dans Firebird.
    je peux bien sûr créer un SQL, mais le top aurait été de faire un datapump qui créer automatiquement les champs et les données dans Firebird
    comme le fait ACCESS.
    il y en a un EMS DataPump mais payant

    ?

  5. #25
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Citation Envoyé par cantador Voir le message
    Oui, dommage que le TJvCsvDataSet plante car c'était le plus aboutit.
    peut-être y a t-il un moyen de modifier ce composant afin de lui faire déborder ses limites ?

    le TdxMemData, quant à lui, fonctionne à l'envers de ce que je souhaite faire.
    En effet, il faut d'abord créer les colonnes et ensuite faire un load des données m'obligeant donc
    à détecter, dans un premier le nombre et le nom des champs, puis avec une procédure les créer dans le TdxMemData
    et enfin, importer les données avec un load, mais bien sûr sans la première ligne des champs !
    ce qui au final, n'est pas très pratique.

    et à propos de la classe TMemoryDataSet, le lien de téléchargement ne fonctionne plus..
    Si on résume, il ne me reste plus grand chose à part créer des tables.
    A ce propos, comme, j'ai une quinzaine de fichiers, ce qui est peu, mais en revanche, cela représente beaucoup de champs
    plusieurs centaines environ, et cela me dérange de me coltiner leurs créations dans Firebird.
    je peux bien sûr créer un SQL, mais le top aurait été de faire un datapump qui créer automatiquement les champs et les données dans Firebird
    comme le fait ACCESS.
    il y en a un EMS DataPump mais payant
    ?
    De toute façon dxmemdata ne peut pas lire directement un fichier csv il faut le lire toi et le mettre au format accepté par dxmemdata oubien alimenter le dxmemdata directement par des .insert ou .insertrecord.

    Pour le TJvCsvDataSet les sources sont disponibles, a voir les problèmes de licence.
    Mais pour lui aussi il faut définir les champs.

    Si tu n'as qu'une quinzaine de type de fichier pour une centaine de champs ce n'est pas la mort non plus.

    L’inconvénient de créer dynamiquement tes tables / colonnes c'est qu'apres il te faudra un requeteur dynamique pour consulter etc

  6. #26
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Il existe aussi une solution avec les drivers ODBC.

    Il existe des drivers ODBC pour fichier texte csv

    C'est peut être une piste à explorer.

  7. #27
    Membre confirmé Avatar de cantador
    Homme Profil pro
    Chef de projet
    Inscrit en
    Mars 2006
    Messages
    569
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aude (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Mars 2006
    Messages : 569
    Points : 484
    Points
    484
    Par défaut suite..
    Pour le TJvCsvDataSet les sources sont disponibles, a voir les problèmes de licence.
    Mais pour lui aussi il faut définir les champs.
    si, si il les détectent..mais plante car trop de machin..

    L’inconvénient de créer dynamiquement tes tables / colonnes c'est qu'apres il te faudra un requeteur dynamique pour consulter etc
    oui, une fois les tables et champs crées, le boulot n'est pas terminé..
    il reste les clés, les index , les liens, les triggers, les generators etc..
    mais pour ma part, ça m'enlève quand même une belle épine du pied.
    j'ai trouvé un XMLWizard d'allure assez sympa..mais chatouilleux sur la nature des données..
    et je vais tester les drivers ODBC.
    sinon, je vais développer une appli qui détecte les colonnes, et crée dynamiquement les tables.
    je te remercie pour cette discussion qui a bien fait avancer les choses.
    je mets résolu
    @bientôt

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. [Toutes versions] Manipulation de longs fichiers texte
    Par DSJ63 dans le forum Excel
    Réponses: 10
    Dernier message: 22/04/2009, 12h01
  2. Réponses: 0
    Dernier message: 30/03/2009, 13h47
  3. XML à fichier text ou csv : mise à plat
    Par fgachet dans le forum XSL/XSLT/XPATH
    Réponses: 8
    Dernier message: 18/02/2009, 12h23
  4. Conversion automatique de fichiers texte en fichiers xml
    Par kana83 dans le forum XML/XSL et SOAP
    Réponses: 3
    Dernier message: 07/10/2008, 10h52
  5. Conversion d'un fichier texte unix -> dos
    Par lejert dans le forum VB 6 et antérieur
    Réponses: 9
    Dernier message: 15/11/2005, 16h59

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