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

C++Builder Discussion :

exporter vers un fichier TXt


Sujet :

C++Builder

  1. #1
    Membre �clair�
    Inscrit en
    Avril 2008
    Messages
    335
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par d�faut exporter vers un fichier TXt
    Bonjour,
    comment je peut exporter les donn�es d'une table access vers un fichier text via c++ builder.
    merci d'avance.

  2. #2
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    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 096
    Par d�faut
    En OLE, avec un CreateObject("Access.Application").
    Tu peux faire appel � DoCmd qui t'offrira l'export via Save ou via TransferText + acExportDelim, tu trouveras des nombreux exemples d'export en VBA utilisant ces m�mes objets en Excel ou Access pour convertir le r�sultat d'une Query en CSV
    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
    R�dacteur
    Avatar de blondelle
    Homme Profil pro
    Inscrit en
    Mars 2006
    Messages
    2 738
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 738
    Par d�faut
    Salut faniette
    Je pense que l'on ne peut pas te donner une reponse correcte sans savoir comment tu utilise ta base Ado Ole ...

  4. #4
    Membre �clair�
    Inscrit en
    Avril 2008
    Messages
    335
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par d�faut
    Bonjour,
    merci pour vos r�ponse, je suis entrain de r�aliser une application sous c++ builder 6 avec la bdd access pour cela j'utilise les alias BDE.

  5. #5
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    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 096
    Par d�faut
    Si ton volume de donn�es est faible (10Mo), tu peux remplir un TStringList via un TQuery, et faire un SaveToFile

    Tu peux aussi utiliser un TTable en TableType sur ttASCII, et recopier un DataSet dans un autre via une boucle sur OEF et FieldCount

    la solution via OLE "Access.Application", est toujours valable aussi
    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

  6. #6
    Membre �clair�
    Inscrit en
    Avril 2008
    Messages
    335
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par d�faut
    Salut
    merci ShaileTroll pour les solutions que tu ma propos�s........

  7. #7
    Membre �clair�
    Inscrit en
    Avril 2008
    Messages
    335
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par d�faut
    Bonjour
    j'ai r�ussie a exporter les donn�es d'une table ADO vers un fichier texte *.txt
    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
    TStringList *sl = new TStringList();
     
          FConnection->Table->First();
    while(!FConnection->Table->Eof)
    {
      String Matricule=FConnection->Table->FieldByName("Matricule")->AsString;
      String Nom =FConnection->Table->FieldByName("Nom")->AsString;
      String Prenoms =FConnection->Table->FieldByName("Prenoms")->AsString;
     
      String Immat= FConnection->Table->FieldByName("NoSS")->AsString;
     
     
      sl->Add(String().sprintf("%s    %s%s                %s", N, Immat, Nom, Prenoms));
      sl->Add(String().sprintf("        %s",Nom));
     
     SaveDialog1->FileName = Edit3->Text;
     //sl->SaveToFile(SaveDialog1->FileName);
      sl->SaveToFile(ChangeFileExt(SaveDialog1->FileName, ".txt"));
      FConnection->table->Next();
      }
    je veut maintenant aligner mes donn�es comme suite:
    N1 Immat1 Nom1 Prenom1
    N2 Immat2 Nom2 Prenom2
    N3 Immat3 Nom3 Prenom3
    ... .......... ....... ...........


    merci d'avance pour votre aide

  8. #8
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activit� : Responsable de compte
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par d�faut
    Hello
    petites questions :
    dans ton code
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
     
     
    sl->Add(String().sprintf("%s    %s%s                %s", N, Immat, Nom, Prenoms));
      sl->Add(String().sprintf("        %s",Nom));
    1. pourquoi ins�re tu 2 fois le champ Nom
    2. le champ N n'est-il pas stock� dans ta table

    les champs dans ta base de donn�e ont des dimensions d�finies
    tu peux donc utiliser des sp�cificateurs de tailles ainsi que le symbole "\t" pou r ins�rer un tabulateur entre chaque chaine
    le sp�cificateur de taille doit �tre adapt� � la taille des champs de ta base de donn�e. Dans le cas contraire les �l�ments seront tronqu�s

    dans l'exemple ci-dessous la taille est sp�cifi�e � 12 pour le pr�nom et le nom ce qui pourrait �tre insuffisant

    ex:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
     
    sl->Add(String().sprintf(L"%.2s\t%.8s\t%.12s\t%.12s",N,Mat,Pre,Name));
    cdlt
    vous trouverez mes tutoriels � l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les r�gles du forum

  9. #9
    Membre �clair�
    Inscrit en
    Avril 2008
    Messages
    335
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par d�faut
    Bonjour
    merci DjmSoftware pour ta r�ponse

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    sl->Add(String().sprintf("%s    %s%s                %s", N, Immat, Nom, Prenoms));
      sl->Add(String().sprintf("        %s",Nom));
     
    1. pourquoi insère tu 2 fois le champ Nom
    c'est une erreur de copier coller

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    2. le champ N n'est-il pas stocké dans ta table
    le champ N prend les don�es d'un Edit

    dans le cas ou tous les champs ne sont pas vide pas de probleme mais dans le cas ou j'ai un champ null j'ai cette r�sultat

    N1 Immat1 Nom1 Prenom1
    N2 (null) Nom2 Prenom2
    N3 Immat3 Nom3 Prenom3
    N4 (null) Nom4 Prenom4
    ... ...... ....... .........

    merci d'avance pour votre aide

  10. #10
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Salut, � la place Immat par exemple utilise plust�t Immat.c_str()

    Il faut faire cela pour tout les types String.

  11. #11
    Membre �clair�
    Inscrit en
    Avril 2008
    Messages
    335
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par d�faut
    Bonjour,
    merci chers developpeurs pour vos sollutions
    avec c_str() je me suis d�baress�e de mot (null) mais le d�calage �xiste toujours

  12. #12
    Membre Expert
    Avatar de Crayon
    Inscrit en
    Avril 2005
    Messages
    1 811
    D�tails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 811
    Par d�faut
    Je ne suis pas certain de ce que tu recherches comme output, mais est-ce que tu as penser � utiliser des tab (\t)?

    Sinon tu peux remplacer le texte vide par des espaces.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    if(Immat.IsEmpty())
    {
        Immat = "    ";
    }

  13. #13
    Membre �clair�
    Inscrit en
    Avril 2008
    Messages
    335
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par d�faut
    Bonjour, je reformule ma question
    je veut specifier la taille de champs
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    dans l'exemple ci-dessous la taille est sp�cifi�e � 30 pour le pr�nom et le nom 
    sl->Add(String().sprintf("%.2s%.8s%.30s%.30s",N,Mat,Pre,Name));


    ce que je cherche meme si la taille du nom moins de 30 le reste espace reste vide.

    merci d'avance pour votre aide

  14. #14
    Expert �minent
    Avatar de ShaiLeTroll
    Homme Profil pro
    D�veloppeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 096
    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 096
    Par d�faut
    Utilise plut�t Format que sprintf !
    sprintf est capricieux si l'on utilise des Strings (comme l'effet de bord sur le NULL)
    Format g�re mieux cela !
    La chaine de format est l�g�rement diff�rent,
    je me demande si sprintf "%.30s" ne fourni pas juste une troncature pour les nombres,
    tu confonds avec sprintf "%-30s" qui tronque si plus et "bourre" si moins

    "%30s" bourre � gauche
    "%-30s" bourre � droite

    Voir ma fonction CopyStuff dans Chaine de caract�res avec des espaces

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
      MemoTrace->Lines->Add("%.30s : ");
      MemoTrace->Lines->Add(AnsiString().sprintf("sprintf : %-30s", "Bob 567 ! Reste 10 !") + " ?");
      MemoTrace->Lines->Add(AnsiString().Format("Format : %-30s", OpenArray<TVarRec>("Bob 567 ! Reste 10 !"), 0) + " ?");
      MemoTrace->Lines->Add(AnsiString().sprintf("sprintf : %-30s", "Bob 567 ! après cela il n'y aura plus de place !" ) + " ?");
      MemoTrace->Lines->Add(AnsiString().Format("Format : %-30s", OpenArray<TVarRec>("Bob 567 ! après cela il n'y aura plus de place !"), 0) + " ?");
      MemoTrace->Lines->Add(AnsiString().sprintf("sprintf : %30s", "Bob 567 ! Reste 10 !") + " ?");
      MemoTrace->Lines->Add(AnsiString().Format("Format : %30s", OpenArray<TVarRec>("Bob 567 ! Reste 10 !"), 0) + " ?");
    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

  15. #15
    Membre �clair�
    Inscrit en
    Avril 2008
    Messages
    335
    D�tails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 335
    Par d�faut
    mille merci ShaiLeTroll

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. sqlcmd export vers un fichier txt
    Par snach dans le forum Outils
    R�ponses: 3
    Dernier message: 01/07/2011, 14h36
  2. Export vers un fichier txt avec transformation
    Par jlgodart dans le forum D�veloppement
    R�ponses: 2
    Dernier message: 09/02/2009, 21h54
  3. [VBA-E] Exporter une page Excel vers un Fichier Txt
    Par mamantins dans le forum Macros et VBA Excel
    R�ponses: 4
    Dernier message: 08/06/2006, 11h09
  4. R�ponses: 10
    Dernier message: 08/06/2006, 08h57
  5. Export d'une table vers un fichier Txt
    Par Max30 dans le forum Access
    R�ponses: 5
    Dernier message: 12/05/2006, 18h10

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