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

WinDev Discussion :

Extraction chaine de txt vers table [WD16]


Sujet :

WinDev

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 95
    Points : 73
    Points
    73
    Par défaut Extraction chaine de txt vers table
    Bonjour,

    je souhaiterai que toutes les données contenues dans un fichier txt soient importées dans une table, une colonne pour chaque donnée.

    Cchaque donnée du fichier txt a comme séparateur ";".

    Pour l'instant j'arrive à importer toutes les données dans la table mais toutes dans la même colonne...

    J'essaie toutes les combinaisons possibles avec extraitchaine, mais sûrement pas la bonne... pouvez-vous m'aider svp...

    voici mon code d'origine :
    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
     
    nIDFichier est un entier
    sChaîneLue est une chaîne
     
    // Ouverture du fichier
    nIDFichier = fOuvre("G:\Applications\Habilitations\30042011.DEBITEUR_023.txt", foLecture)
    SI nIDFichier <> -1 ALORS
     
    	// Lecture du fichier
    	sChaîneLue = fLitLigne(nIDFichier)
    	TANTQUE sChaîneLue <> EOT
     
    		TableAjouteLigne(TABLE_DONNEES,sChaîneLue)
    		// sChaîneLue contient la chaîne lue
     
    		sChaîneLue = fLitLigne(nIDFichier)
    	FIN
     
    	// Fermeture du fichier
    	fFerme(nIDFichier)
    	Info("Import terminé !")
    SINON
    	Erreur()
    FIN

  2. #2
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Bonjour
    Citation Envoyé par christophe9117 Voir le message
    Pour l'instant j'arrive à importer toutes les données dans la table mais toutes dans la même colonne...
    Oui c'est exactement ce que tu fais
    Avec TableAjouteLigne il faut spécifier les valeurs de chaque colonne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Résultat> = TableAjouteLigne(<Nom de la table> [, <Élément colonne 1> [ ... [, <Élément colonne N>]])
    Donc il faut décomposer les éléments de ta chaîne avec ExtraitChaine pour chaque colonne (ExtraitChaine(sChaîneLue, 1, ";") pour la 1ere valeur, etc ...)

    Pour le faire avec une seule chaîne il faut utiliser TableAjoute et que le séparateur de valeurs soit la tabulation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    sChaîneLue = Remplace(sChaîneLue, ";", TAB)
    TableAjoute(TABLE_DONNEES, sChaîneLue)
    Attention, ça ne peut fonctionner que si les données en elles même ne contiennent pas de tabulation

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    95
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Juillet 2009
    Messages : 95
    Points : 73
    Points
    73
    Par défaut
    Merci,

    Je savais bien que je n'étais pas loin, mais il manquait ce petit je ne sais quoi...

    le code 2 fonctionne nickel...

  4. #4
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    Par défaut
    Dans ce cas tu peux le simplifier :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    sTexteFichier est une chaîne = fChargeTexte("G:\Applications\Habilitations\30042011.DEBITEUR_023.txt")
    sTexte = Remplace(sTexteFichier, ";", TAB)
    POUR TOUTE CHAINE sChaîneLue DE sTexteFichier SEPAREE PAR RC
       TableAjoute(TABLE_DONNEES, sChaîneLue)
    FIN

  5. #5
    Membre régulier Avatar de NetLandGim
    Homme Profil pro
    Inscrit en
    Mars 2011
    Messages
    97
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations forums :
    Inscription : Mars 2011
    Messages : 97
    Points : 113
    Points
    113
    Par défaut
    Tu peux aussi faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    maChaine est une chaine=fChargeTexte("montexte.txt")
    xChaine est une chaine=extraitChaine(maChaine,rangPremier,";")
    TANTQUE xChaine<>EOT
    si xChaine<>""
     
      TableAjoute(maTable,xChaine)
       xChaine =extraitChaine(maChaine,rangSuivant,";")
    FIN
     
    FIN

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

Discussions similaires

  1. [XL-2007] Extraction date de .txt vers .xls
    Par Loupire dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 25/01/2010, 10h22
  2. Import txt vers table
    Par bennyben87 dans le forum Administration
    Réponses: 4
    Dernier message: 18/03/2009, 14h22
  3. fichier txt vers table access Shema.ini
    Par psyko72 dans le forum VB.NET
    Réponses: 1
    Dernier message: 05/07/2007, 11h13
  4. txt vers table
    Par nico.chev dans le forum Access
    Réponses: 6
    Dernier message: 20/06/2005, 08h31
  5. Extraction d'un .txt et Insertion dans une table
    Par PoPmiSiR dans le forum Access
    Réponses: 8
    Dernier message: 28/10/2004, 19h13

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