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 :

Obtenir les informations détaillées de la structure d'un fichier [WD18]


Sujet :

WinDev

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 87
    Points : 52
    Points
    52
    Par défaut Obtenir les informations détaillées de la structure d'un fichier
    Bonjour,

    Je voudrais obtenir dans une table remplie par programmation les informations détaillées sur la structure des rubriques d'un fichier dont le chemin à été sélectionné dans un champ sélecteur.
    A la manière de WDMAPNom : Capture.PNG
Affichages : 257
Taille : 7,1 Ko

    Qui peut m'aider.

    Merci

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 188
    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 188
    Points : 12 744
    Points
    12 744
    Par défaut
    Bonjour
    Citation Envoyé par Rokitdev Voir le message
    Qui peut m'aider.
    L'aide en ligne, par exemple avec les commandes hListe* et hDecrit* ?

    Tatayo.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Fait avant de poster la question
    Tant pis

  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
    Bonjour

    Si tu as cherché dans l'aide tu as du voir HListeRubrique

    Qu'est-ce qui te pose problème ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    Voici le code pour récupéré les infos par HListeRubrique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    i est un entier
    sListeRubrique est une chaîne
     
    POUR i = 1 _A_ NOM_FICHIER..NbRubrique
    	sListeRubrique = HListeRubrique(NOM_FICHIER,hLstDétailPlus)
     
    	sListeRubrique = ExtraitChaîne(sListeRubrique, i, RC)
     
    	TableAjouteLigne(TABLE_Fichier,...
    	ExtraitChaîne(sListeRubrique,1),... //Nom rubrique
    	ExtraitChaîne(sListeRubrique,2),... //Type (T = Texte, N = Numérique)
    	ExtraitChaîne(sListeRubrique,3),... //Type Hyper File
    	ExtraitChaîne(sListeRubrique,4),... //Taille de la rubrique
    Ce qui me pose problème c'est mon NOM_FICHIER je voudrais qu'il corresponde au fichier sélectionner dans mon sélecteur(Cela peut être un fichier sans analyse, ou d'un projet différent).
    J'ai essayé par la déclaration d'une variable mais NbRubrique ne l'accepte pas (ref Aide).

    Merci pour votre aide.

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 188
    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 188
    Points : 12 744
    Points
    12 744
    Par défaut
    Bonjour,
    Il faut utiliser une indirection sur le nom du fichier.

    Tatayo.

  7. #7
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Bonjour,
    J'ai suivi vos conseils mais j'ai toujours le soucis avec NbRubrique
    Erreur renvoyée:
    Procédure locale FichierDonnées (FEN_Principale.PROCEDURE.FichierDonnées), ligne 17
    Clic sur BTN_SEL ( SC_SelecteurFichierDonnées ) (FEN_Principale.SC_SelecteurFichierDonnées.BTN_SEL), ligne 11
    Je met le code de mon Sélecteur de fichier et de ma procédure car j'ai beau chercher dans l'aide mais je ne vois pas.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sSel est une chaîne
    sSel = fSélecteur(SAI_FIC, "Sélection d'un fichier.....", "Fichiers (*.fic)"+TAB+"*.fic", "*", fselOuvre+fselExiste)
    SI sSel<>"" ALORS
    	SAI_FIC = sSel
    	MonParent  = SAI_FIC
    FIN
    SAI_NomFichier = fExtraitChemin(sSel,fFichier)
    // Indirection procédure
    NomChamp est une chaîne
    NomChamp = "SAI_NomFichier"  // SAI_NomFichier est le nom du champ
    FichierDonnées(NomChamp)
    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
    PROCEDURE FichierDonnées(NChamp)
    i est un entier
    sListeRubrique est une chaîne
     
    POUR i = 1 _A_ {NChamp}..NbRubrique
    	sListeRubrique = HListeRubrique({NChamp},hLstDétailPlus)
    	//Récupère chaque rubrique du fichier...
    	sListeRubrique = ExtraitChaîne(sListeRubrique, i, RC)
    	//Ajout dans la table de chaque détail...(ici une table mémoire de 8 colonnes)
    	TableAjouteLigne(TABLE_Fichier,...
    	ExtraitChaîne(sListeRubrique,1),... //Nom rubrique
    	ExtraitChaîne(sListeRubrique,2),... //Type (T = Texte, N = Numérique)
    	ExtraitChaîne(sListeRubrique,3),... //Type Hyper File
    	ExtraitChaîne(sListeRubrique,4),... //Taille de la rubrique
    	ExtraitChaîne(sListeRubrique,5),... //Indicée /nombre d'élément du tableau)
    	ExtraitChaîne(sListeRubrique,6),... //Libellé
    	ExtraitChaîne(sListeRubrique,7),... //Partie entière N
    	ExtraitChaîne(sListeRubrique,8))    //Partie décimale N
    FIN
    Merci de votre aide

  8. #8
    Membre émérite
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Points : 2 441
    Points
    2 441
    Par défaut
    Bonjour,

    Je n'ai pas de réponse mais je vous suggère de remplacer votre boucle par la fonction ChaineVersTableau, qui répond précisément à votre besoin.
    Ce sera beaucoup plus simple et plus lisible.

    Ce qui ne vous empêche pas de tenter de trouver l'erreur, c'est comme cela qu'on apprend.

    Hemgé

  9. #9
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 188
    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 188
    Points : 12 744
    Points
    12 744
    Par défaut
    L'erreur se trouve dans la récupération du nom du fichier.
    Je te propose de mettre un point d'arrêt après le fSelecteur, puis de bien regarder le contenu des variables.

    Tatayo.

  10. #10
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    Dans ma variable j'ai bien le chemin de mon fichier qui s'affiche.
    Si j'ajoute sSel = fextraitchemin(sSel,ffichier) j'ai bien le nom cour mais j'ai le même problème avec la propriété NbRubriqueDésolé je vois pas l'erreur.

    Merci

  11. #11
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 188
    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 188
    Points : 12 744
    Points
    12 744
    Par défaut
    Je dirai que tu n'es pas allé assez loin dans le débuggage.
    Va jusqu'au bout, y compris dans la procédure FichierDonnées.

    Tatayo.

  12. #12
    Membre chevronné Avatar de EDM-TAHITI
    Homme Profil pro
    Directeur Service informatique et projet développement
    Inscrit en
    Janvier 2010
    Messages
    994
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Directeur Service informatique et projet développement
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2010
    Messages : 994
    Points : 1 995
    Points
    1 995
    Par défaut
    Hello,
    Des erreurs sont présentes dans la récupération des rubriques du fichier.... voici le bout de code qui devrait se suffire à lui-meme

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    Procedure AfficheRubriqueFichier(_NomFichier)
    sIndice est un entier
    sListeRubrique est une chainesListeRubrique = HListeRubrique(_NomFichier,hLstDétailPlus)
    pour tout chaine sRubrique de sListeRubrique separee par RC
            nIndice = tableajouteligne(TableFichier)
            si nindice <> -1 alors
     
     
    //Ajout dans la table de chaque détail...(ici une table mémoire de 8 colonnes)
    TableFichier.col_Nom[nindice] = ExtraitChaîne(sListeRubrique,1) //Nom rubrique
    TableFichier.col_Type[nindice] = ExtraitChaîne(sListeRubrique,2) //Type (T = Texte, N = Numérique)	TableFichier.col_RypeHyperFile[nindice] = ExtraitChaîne(sListeRubrique,3) //Type Hyper File	TableFichier.col_Taille[nindice] = ExtraitChaîne(sListeRubrique,4)//Taille de la rubrique	TableFichier.col_Indice[nindice] = ExtraitChaîne(sListeRubrique,5) //Indicée /nombre d'élément du tableau)	TableFichier.col_Libelle[nindice] = ExtraitChaîne(sListeRubrique,6) //Libellé	TableFichier.col_PartieEntiere[nindice] = ExtraitChaîne(sListeRubrique,7)//Partie entière N	TableFichier.col_PartieDecimale[nindice] = ExtraitChaîne(sListeRubrique,8))    //Partie décimale N        fin
    fin
    Cette procédure va lister les rubriques du fichier et les placer dans la table. Ceci est un exemple de récupération des rubriques d'un fichier détaillé dans l'analyse.
    Mais il faudra apporter des modifications pour qu'elle corresponde à tes besoins et attentes....
    Et pour le reste, bon dev.
    le savoir est dans les livres, 'the magic touch F1'
    Amicalement
    Eric

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    Citation Envoyé par tatayo Voir le message
    Je dirai que tu n'es pas allé assez loin dans le débuggage.
    Va jusqu'au bout, y compris dans la procédure FichierDonnées.

    Tatayo.
    Le code fonctionne bien si le fichier fait parti d'une analyse, mais pas d'un fichier sans analyse.

    RokitDev

  14. #14
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 188
    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 188
    Points : 12 744
    Points
    12 744
    Par défaut
    Je suis surpris que ça fonctionne...
    A la place de
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NomChamp = "SAI_NomFichier"
    J'aurai plutôt vu
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    NomChamp = SAI_NomFichier
    Sinon il me semble que tu tentes d'accéder aux rubriques du fichier SAI_NomFichier.

    Pour accéder à un fichier hors analyse, il faut le déclarer avec hDéclareExterne().

    Tatayo.

  15. #15
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    oui j'avais mon code du sélecteur fichier comme ceci désolé j'ai tellement fait de modifications que je sais plus trop ou j'en suis....
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    sSel est une chaîne
    sSel = fSélecteur(SAI_FIC, "Sélection d'un fichier.....", "Fichiers (*.fic)"+TAB+"*.fic", "*",fselOuvre+fselExiste)
    sSel = fExtraitChemin(sSel,fFichier)
    SI sSel<>"" ALORS
    	SAI_FIC = sSel
    	MonParent  = SAI_FIC
    FIN
    // Indirection procédure
    NomChamp est une chaîne
    NomChamp = sSel
    FichierDonnées(NomChamp)
    Je vais regarder du hDéclareExterne()

    Merci

  16. #16
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    J'ai regardé du coté de HDéclareExterne
    j'ai donc ajouté : HDéclareExterne(sSel,"MonFichier").
    Soucis je dois mettre alias physiquement comment faire pour que cet alias soit mon sSel,fFichierj'ai regarder du coté de l' exemple WD Fichier Externe mais l'alias est déclaré pareil.

    RokitDev

  17. #17
    Membre du Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    87
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 87
    Points : 52
    Points
    52
    Par défaut
    Bonjour,

    Voici le code complet et fonctionnel avec le HDéclareExterne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    sSel est une chaîne
    sNomFichier est une chaîne
    sSel = fSélecteur(SAI_FIC, "Sélection d'un fichier.....", "Fichiers (*.fic)"+TAB+"*.fic", "*",fselOuvre+fselExiste)
    sNomFichier = fExtraitChemin(sSel,fFichier)
    HDéclareExterne(sSel,sNomFichier)
     
    SI sSel<>"" ALORS
    	SAI_FIC = sSel
    	MonParent  = SAI_FIC
    FIN
    // Indirection procédure
    NomChamp est une chaîne
    NomChamp = sNomFichier
    FichierDonnées(NomChamp)
    RokitDev

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

Discussions similaires

  1. Obtenir les informations d'un MSI installé
    Par Invité dans le forum Général Dotnet
    Réponses: 16
    Dernier message: 28/08/2008, 00h31
  2. Obtenir les informations d'une stacktrace
    Par Drannor dans le forum Langage
    Réponses: 2
    Dernier message: 08/04/2008, 12h08
  3. Réponses: 6
    Dernier message: 31/03/2008, 12h10
  4. Obtenir les informations géographique mondiale
    Par Husqvarna dans le forum Services
    Réponses: 1
    Dernier message: 08/03/2008, 12h31
  5. Obtenir les informations de version
    Par Masmeta dans le forum C++Builder
    Réponses: 3
    Dernier message: 13/07/2007, 13h52

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