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

Langage Delphi Discussion :

Comment récupérer le nom des objets et leur classe depuis un .DFM ?


Sujet :

Langage Delphi

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut Comment récupérer le nom des objets et leur classe depuis un .DFM ?
    Je cherche une méthode simple pour récupérer la liste des objets et leur classes d'un fichier .DFM. Je n'ai pas besoin de récupérer la valeur ou le nom des attributs des objets.

    J'avais récupéré un vieux soft (dfm2txt) pour convertir les fichiers .DFM en format texte et faire un parsing après, mais à chaque fois j'ai une Exception "Format de flux incorrect" à l'exécution de ObjectResourceToText.

    Quelqu'un aurait-il une piste ou un morceau de code qui fonctionne ?

  2. #2
    Membre régulier
    Homme Profil pro
    Chef de projet
    Inscrit en
    Juin 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 101
    Points : 122
    Points
    122
    Par défaut
    Les fichers DFM sont en ASCII pur.
    Il suffit de les parcourir séquentiellement, et de récupérer toutes les lignes qui commencent par : object Nom: Type
    Après, pour connaître les parents, tu peux jouer soit sur l'indentation, soit sur les couples object...end.

  3. #3
    Membre chevronné
    Avatar de Pierre Castelain
    Inscrit en
    Avril 2002
    Messages
    523
    Détails du profil
    Informations forums :
    Inscription : Avril 2002
    Messages : 523
    Points : 1 943
    Points
    1 943
    Par défaut
    Citation Envoyé par Le Lézard
    Les fichers DFM sont en ASCII pur.
    Uniquement si l'option "DFM texte" a été sélectionnée, sinon c'est du binaire.

  4. #4
    Membre régulier
    Homme Profil pro
    Chef de projet
    Inscrit en
    Juin 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 101
    Points : 122
    Points
    122
    Par défaut
    Ah !
    Autant pour moi...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    J'ai remarque que cela marche très bien avec des fichiers .dfm provenant d'anciennes version de Delphi. Pour info j'utilise Delphi6 PE.

  6. #6
    Membre régulier
    Homme Profil pro
    Chef de projet
    Inscrit en
    Juin 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 101
    Points : 122
    Points
    122
    Par défaut
    J'ai peut-être une solution :
    Quand tu charges dans l'EDI une form, elle apparaît sous sa forme visuelle. Il suffit de faire (lorsqu'elle est active) Alt+F12, et une nouvelle fenêtre apparaît, et ton DFM est traduit en texte. Tu n'as plus qu'à faire un copier/coller dans un fichier texte...

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    J'ai besoin de récupérer le txt ou la liste des objets dans un programme pour faire des traitements avec donc la solution avec l'IDE ne me convient pas.

  8. #8
    Membre régulier
    Homme Profil pro
    Chef de projet
    Inscrit en
    Juin 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 101
    Points : 122
    Points
    122
    Par défaut
    moi pas comprendre...

  9. #9
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    J'ai besoin de récupérer la liste et le nom des objet directement depuis un fichier .DFM dans une application pour générer automatiquement du code Delphi donc je ne peux pas utiliser l'EDI pour faire un copier-coller manuellement.

  10. #10
    Membre régulier
    Homme Profil pro
    Chef de projet
    Inscrit en
    Juin 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 101
    Points : 122
    Points
    122
    Par défaut
    Ok.
    Mon idée était de regénérer (manuellement à partir de l'EDI) en ASCII les DFM de ton appli.
    Ensuite, tu les donnes à digérer à ton appli.

    Tout dépend si tu as beaucoup de DFM à analyser, si c'est pour un "One Shoot" ou pour une industrialisation du process, si tu maîtrises ou pas le fait que les futures DFM (en cas d'industrialisation) soit en ASCII ou en binaire...

  11. #11
    Membre régulier
    Homme Profil pro
    Chef de projet
    Inscrit en
    Juin 2004
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Chef de projet
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 101
    Points : 122
    Points
    122
    Par défaut
    Citation Envoyé par cpdump
    J'ai besoin de récupérer la liste et le nom des objet directement depuis un fichier .DFM dans une application pour générer automatiquement du code Delphi donc je ne peux pas utiliser l'EDI pour faire un copier-coller manuellement.
    Je n'ai peut-être pas bien compris ton besoin.

    Tu cherches à :
    - Explorer les DFM (au format binaire .DFM) d'un projet pour fournir des informations à une application qui générera automatiquement du code Delphi
    ou
    - explorer les DFM intégrés dans un EXE (application pour lequel tu n'as pas les sources), dans le but de générer automatiquement du code Delphi

  12. #12
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    298
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 298
    Points : 318
    Points
    318
    Par défaut
    J'ai compris mon problème: selon les versions de Delphi et une option cachée au fin fond des préferences, les fichiers .dfm peuvent être enregistrés soit en format texte, soit en format binaire.

    Mon erreur venait du fait que sur ma version de delphi les .dfm étaient sauvegardés en texte et mon programme attendait des dfm binaires d'où plantage. Si la première ligne du fichier .dfm contient le mot-clé object, c'est un dfm texte, sinon c'est du binaire.

    En fait, je cherches à explorer les DFM d'un projet pour fournir des informations à une application qui générera automatiquement du code Delphi.

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

Discussions similaires

  1. Réponses: 11
    Dernier message: 12/05/2006, 17h18
  2. [ODBC] Comment récupérer le nom des champs de table Access
    Par Alexlesilex dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 12/05/2006, 14h14
  3. Comment récupérer le nom des connexions réseau
    Par ghyslain84 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/12/2005, 19h48
  4. ShellListView : comment récupérer les noms des fichiers?
    Par Lolo1988 dans le forum Composants VCL
    Réponses: 1
    Dernier message: 11/12/2005, 23h19
  5. Comment récupérer le nom des colonnes ?
    Par constantin dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 07/10/2005, 11h29

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