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 :

Export TXT du résultat d'un HLitRecherche [WD21]


Sujet :

WinDev

  1. #1
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut Export TXT du résultat d'un HLitRecherche
    Bonsoir,

    Je débute un peu dans Windev (ma société travaillant majoritairement dessus, j'essaie de m'y mettre), et j'ai eu beau écumer pas mal de pages de doc.pcsoft.fr je sèche..

    Mon but : Récupérer un code postal provenant d'une rubrique (clé composée) d'un fichier .FIC externe (sans mot de passe), puis ajouter cette info dans un fichier texte existant.

    Mon problème : Je ne sais pas comment transférer le contenu de mon HLitRecherche à mon fichier texte. Je sais envoyer le résultat dans un tableau, mais un fichier texte ??

    CLPA = clé composée
    VA = 1ère rubrique
    CODEPOSTAL = 2ième rubrique qui contient mon fameux code postal

    Voila mon code si ca peut aider..

    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
     
    sdPARAM est une Source de Données
    HDéclareExterne("C:\MonDossier\MONFICHIER.FIC","sdPARAM")
    SI ErreurDétectée ALORS
    	Erreur(ErreurInfo(errInfo))
    	RETOUR
    FIN
     
    sResultat est une chaîne = HLitRecherche(sdPARAM,"CLPA",["VA","CODEPOSTAL"])
    SI HTrouve(sdPARAM) ALORS
     
    	// Ouverture d'un fichier externe
    	nIDFichier est un entier = fOuvre("C:\MonDossier\Fichier.txt", foLectureEcriture)
     
    		nResEcriture est un entier = fEcrit(nIDFichier, sResultat)
     
     
    FIN
    Si quelqu'un pouvait au moins me mettre sur la bonne piste

    PS : J'ai volontairement omis la fermeture du fichier et la fin de déclaration pour juste mettre le code qui pose problème..

  2. #2
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    HlitRecherche ne renvoie pas une chaîne. De mémoire, ça renvoie un booléen. Regarde la doc de HLitRecherche.

    Ici, ça va être un peu plus compliqué que le cas courant, car ton fichier FIC n'est pas dans l'analyse.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  3. #3
    Membre expérimenté
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    914
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 914
    Points : 1 496
    Points
    1 496
    Par défaut
    Bonsoir
    J'utilise fSauveTexte
    http://doc.pcsoft.fr/fr-FR/?3036046&name=fSauveTexte

  4. #4
    Invité
    Invité(e)
    Par défaut
    En lisant la documentation de la fonction HLitRecherche, tu as un exemple de recherche sur une clé composée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    // Recherche de l'enregistrement
    HLitRecherche(CLIENT, NOM_PRENOM, ["MOULIN","Françoise"])
     
    TANTQUE HTrouve(CLIENT)
            // Traitement
            HLitSuivant(CLIENT, NOM_PRENOM)
    FIN

  5. #5
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Bonjour à tous,

    @tbc92, le .fic n'est pas dans mon analyse, mais ce que je ne comprends pas c'est pourquoi ca ne pose aucun souci pour récupérer les valeurs de ma rubrique dans un tableau, et pourquoi cela pose un souci de les récupérer dans un fichier texte ?

    @ Yusep, j'avais essayé mais ca inscrit un "1" (réponse positive du booléen), mon problème reste le même, je ne "sais pas" comment récupérer le contenu de ma rubrique en tant que tel, et non le booléen, et apparemment créer une variable de type chaine de caractères n'est pas la solution..

    @Romulus, c'est déjà le cas car j'ai remplacé le TANT QUE par un SI vu que le contenu de ma rubrique CODEPOSTAL ne contient qu'une seule valeur et donc que je n'en attends qu'une seule.

    Mais la ce n'est pas la recherche qui me pose problème, c'est la partie ou je prends le résultat de mon HLitrecherche et ou je la met dans un fichier texte.

    C'est cette partie que je ne sais ni comprendre ni

  6. #6
    Invité
    Invité(e)
    Par défaut
    Comme Yusep l'a suggéré, pour écrire dans un fichier texte, faire appel à fSauveTexte est une excellente idée.
    Pour récupérer la valeur de ta rubrique, je dirais que c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {"sdPARAM.CLPA", indRubrique}
    mais personnellement, je me sers très occasionnellement d'une base de données HFSQL, je ne suis pas très à l'aise sur le sujet

  7. #7
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Comme te l'a indiqué tbc92, hLitRecherche renvoie un booléen qui t'indique "juste" si la fonction a trouvé un enregistrement qui correspond. Donc si tu enregistres dans ton fichier le résultat de cette fonction, tu vas logiquement récupérer un 1 ou un 0.
    Romulus t'as donné un exemple de code, tu vois bien que hLitRecherche n'est pas dans la boucle.
    hLitRecherche positionne l'enregistrement courant de ton fichier sur ce qu'il a trouvé (c(est clairement indiqué dans l'aide en ligne), tu dois donc lire le contenu de cet enregistrement pour le mettre dans un fichier.

    Tatayo.

  8. #8
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Effectivement j'y vois plus clair et je pense avoir trouvé mon erreur. En fait j'ai (entre autres) confondu "l'enregistrement est lu" avec "l'enregistrement est stocké".

    Merci à vous tous de m'avoir fait comprendre mon erreur, je vais corriger mon code en conséquence, et je reviendrai dans cette discussion pour la passer en résolu si tout est OK

  9. #9
    Membre éclairé
    Avatar de Narwe
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2013
    Messages
    253
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2013
    Messages : 253
    Points : 668
    Points
    668
    Par défaut
    La fonction HRecupereEnregistrement fonctionne avec les sources de données.
    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    LOCAL
    	sdData		est une Source de Données
     
     
    SI PAS HExécuteRequêteSQL(sdData, hRequêteDéfaut, "SELECT * FROM MATERIEL") ALORS Erreur(ErreurInfo());RETOUR
     
    SI PAS HLitRecherchePremier(sdData, "IDMATERIEL", 10) ALORS Avertissement("Pas trouvé");RETOUR
     
    Info(HRécupèreEnregistrement(sdData))
    Ou dans le 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
     
    sdPARAM est une Source de Données
    HDéclareExterne("C:\MonDossier\MONFICHIER.FIC","sdPARAM")
    SI ErreurDétectée ALORS
    	Erreur(ErreurInfo(errInfo))
    	RETOUR
    FIN
     
    sResultat est une chaîne = HLitRecherche(sdPARAM,"CLPA",["VA","CODEPOSTAL"])
    SI HTrouve(sdPARAM) ALORS
     
    	// Ouverture d'un fichier externe
    	nIDFichier est un entier = fOuvre("C:\MonDossier\Fichier.txt", foLectureEcriture)
     
    		nResEcriture est un entier = fEcrit(nIDFichier, HRécupèreEnregistrement(sdPARAM))
     
     
    FIN

  10. #10
    Candidat au Club
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Avril 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2012
    Messages : 4
    Points : 3
    Points
    3
    Par défaut
    Merci Narwe, j'en étais arrivé à la même conclusion, en plus lent

    En tout cas merci à toutes les personnes ayant participé à cette discussion, c'est vraiment appréciable de voir l'entraide présente sur ce forum..

    J'essaierai d'aider également, même avec mes maigres connaissances....

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

Discussions similaires

  1. Export en .txt du résultat d'une requête
    Par nicethe dans le forum PL/SQL
    Réponses: 3
    Dernier message: 01/04/2010, 12h26
  2. Importation/ exportation txt-->Access sous VB6
    Par moi_leila dans le forum VB 6 et antérieur
    Réponses: 14
    Dernier message: 02/12/2007, 14h43
  3. Date pendant l'export Txt->Excel
    Par Myogtha dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 17/10/2007, 13h26
  4. Réponses: 3
    Dernier message: 01/04/2007, 13h08
  5. formatage à l'exportation txt
    Par pasbonte dans le forum Access
    Réponses: 6
    Dernier message: 12/10/2005, 15h30

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