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

Bases de données Delphi Discussion :

bdd texte et bdd Msaccess


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Février 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 16
    Par défaut bdd texte et bdd Msaccess
    bojour
    j'ai une base de deonne commandes.txt contenant des champs séparé par des"|"avec un dizaine de ligne.
    j'ai une bdd Masaccess nommée general contenat une table commandes composées des mêms champs que la bdd commandes.txtx.
    je voudrais inserer les donnees de commandes.txt dans la bdd MsAcces.

    merci de ma'aider car je ne suis pas un pro de delphi

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Par défaut
    A tout hasard, tu appelles BDD un fichier texte ou c'est vraiment le nom de ta BDD ?

  3. #3
    Membre averti
    Inscrit en
    Février 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 16
    Par défaut
    commandes.txt est de la forme
    nom|prenom|adresse|
    dupond|jean|rue des acacias
    dupond2|albert|rue des envie etc ...

    c'est un fichier texte

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Par défaut
    Salut,

    Au pire tu devras faire une moulinette, qui ouvre ton fichier texte, lit chaque ligne, décompose, les valeurs en fonction du séparateur et les enregistre dans ta table access.

    Mais tu n'en dit pas assez par exemple:
    Le nombre de champ de ton fichier txt est-il le meme que la table source ?
    La première ligne de ton fichier comporte t'elle le nom de ces champs ?

    ect..

    Si le fichier volumineux, et qu'il ni est pas de probleme d'intégrité a résoudre tu peux envisager de remplacer, ton séparateur par un ; puis d'ajouter une premiere ligne contenant le nom des champs et enfin d'importer la table complete avec une connexion ADO en odbc txt.
    (On peut aussi en mode "jet" mais là je n'ai jamais essayé)

  5. #5
    Invité de passage
    Inscrit en
    Mars 2004
    Messages
    1
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 1
    Par défaut
    salut
    bon je pense que depuis t'as résolu ton pb?
    sinon je peux t'aider

  6. #6
    Membre averti
    Inscrit en
    Février 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 16
    Par défaut
    j'ai pas résolu le pb car je ne suis pas un pro et je dedute sous delphi

    les champs sont identiques dans le fichier texte et le bdd msAccess

    merci de votre aide car j'en ai besoin ((

  7. #7
    Membre confirmé
    Inscrit en
    Avril 2002
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 103
    Par défaut
    Tu sembles avoir une Table Bien structurée. Pourquoi ne pas définir tes trois champs : Nom
    Prenom
    Adresse.
    En utilisant un SGBD simple type PARADOX, tu règleras ton problème, sans avoir à séparer et à réassembler tes données.
    Je ne comprends pas pourquoi passer par une Table avec un seul champ?

  8. #8
    Membre averti
    Inscrit en
    Février 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 16
    Par défaut
    ce n'est pas moi qui ai choisit ce fichier client.txt nom|prenom|adresse| avec les lignes de données avec.

    je veux transferer les donnees de clientx .txtx dans la bddmsaccess nommées datas.mdb avec une tables client contenant les m^me champs.

  9. #9
    Membre éprouvé
    Avatar de Harry
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2002
    Messages
    1 224
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2002
    Messages : 1 224
    Par défaut
    Tu va être obligé de lire les caractères 1 par 1 et determiner si c un | ou pas , a chaque pipe tu met les donnees des caracs précédents (préalablement mis dans une variable) dans le champ etc...

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    113
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2003
    Messages : 113
    Par défaut
    Codes toi l'équivalent de Explode() du PHP...

    Je te donne celle que j'utilise, trouvée sur le forum et modifiée par mes soins

    A toi de l'adapter.

    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
    25
    26
    27
    28
    29
    30
    procedure Explode(TexteATraite: String );
    var
      Texte, phrase, caractere, separateurs: string;
      i,y, LongueurTexte: integer;
    begin
        y := 0;
        phrase := '';
        Texte := TexteATraite;
        LongueurTexte := Length(Texte);
        Separateurs := ' ';
     
        for i := 1 to LongueurTexte do
        begin
            caractere := Texte[i];
            phrase := phrase + caractere; 
            if Pos(caractere, separateurs) <> 0 then
            begin
                Smileys[y] := Trim(phrase);
                phrase := '';
                Inc(y);
            end
            else
            if i = LongueurTexte then
            begin
                Smileys[y] := Trim(phrase);
                Inc(y);
            end;
     
        end;
    end;

  11. #11
    Membre averti
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    29
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 29
    Par défaut
    Tu as la solution de passer par un driver ODBC texte, et d'importer ton fichier vers ta base access.

    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
    25
    26
    27
    28
             { Création dynamique du ADOConnection pour l'importation }
             ADOConnection := TADOConnection.Create(Nil);
             { Configuration ODBC Ascii }
             ADOConnection.ConnectionString := 'Provider=MSDASQL.1;' +
                'Persist Security Info=False;' +
                'Extended Properties="DefaultDir=;' +
                '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;"';
     
             { Ouverture avec le driver odbc ascii }
             ADOConnection.Open;
     
             { La requete d'insertion  }
                S := ('INSERT INTO ' +  TableName +
                   ' IN ' + '''' + MDBFile + '''' + ' Select * ' + ' FROM ' + FichierTxt);
     
            {insertion des données}
             ADOConnection.Execute(S);
    [Balise [code] rajoutée par Nono40]


    Bon en gros voila ce que ca peut donner

  12. #12
    Membre averti
    Inscrit en
    Février 2003
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 16
    Par défaut
    philia, je ne sais pas comment declarer la variable S.
    Ne faut-il pas egalement ouvrir laz connexion odbc pas la bas msaccess?

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

Discussions similaires

  1. [1.x] Comment tronquer un text de BDD dans le modele ?
    Par Kris13 dans le forum Symfony
    Réponses: 3
    Dernier message: 19/06/2009, 19h34
  2. Comparaison texte et BDD
    Par yanchasp dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 18/09/2008, 19h12
  3. Données fichier texte vers BDD
    Par dr_octopus74 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 08/02/2007, 16h54
  4. extraire donner fichier texte vers BDD
    Par dr_octopus74 dans le forum PostgreSQL
    Réponses: 3
    Dernier message: 29/12/2006, 20h07
  5. [validation]Erreur format texte depuis BDD
    Par Death83 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 18/02/2006, 20h49

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