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

 Delphi Discussion :

DTD-XML-Fichier binaire à analyser.


Sujet :

Delphi

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Points : 31
    Points
    31
    Par défaut DTD-XML-Fichier binaire à analyser.
    Bonjour,
    J'ai un programme développé en Delphi 6 qui analyse notamment des fichiers binaires avec différentes structures, valeurs de champs, des conditions sur des bits indiquant les structures qui suivent etc.. Tout cela était "codé" directement dans le soft. L’inconvénient principal étant que pour toutes évolutions ou modifications des structures, il faut refaire du code, re-compiler, re-livrer.
    On me propose donc que la description des structures soit définie dans des fichiers DTD + XMLs, si bien qu'il suffirait de les modifier pour que l'analyse du fichier binaire "s'adapte" sans re-livraison de l'application.
    J'aurai donc bien sur en "entrée" toujours mes fichiers binaires à analyser, mais là ou actuellement je code toute la logique associée à l'analyse du fichier, cette dernière serait dans l'association DTD+XMLs.

    N'étant pas du tout famillier avec le XML et encore moins avec la DTD, je tâtonne, je ne sais pas trop par quoi commencer.
    Je me demande comment "importer" cette DTD et XMLs dans mon programme, et faire le lien avec l’analyse des fichiers binaires ?

    C'est très général, je me documente en parallèle sur le format DTD et XML.
    Si vous avez des grandes pistes pour aborder ça.
    Merci

  2. #2
    Membre expert
    Avatar de Charly910
    Homme Profil pro
    Ingénieur TP
    Inscrit en
    Décembre 2006
    Messages
    2 346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur TP
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Décembre 2006
    Messages : 2 346
    Points : 3 124
    Points
    3 124
    Par défaut
    Bonjour,

    je pense que tu l'as déjà vu, mais sinon il y a un article pour débuter sur XML

    Initiation à XML et Delphi 6

    L'expert de liaison XML peut rendre service dans les cas simples

    A+

    Charly

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Re,
    merci pour le retour. Oui j'avais déjà vu et j'ai également pratiqué l'expert de liaison de données pour des fichiers XML assez simples.
    Egalement un pb que j'ai, mon fichier DTD, bien que correcte sur les vérificateurs de DTD on line, me fait plusieurs erreur dans l'expert de liaison comme par exemples :
    - "type de données "exclude" inconnu
    - Des valeurs par défauts dans la DTD qu'il ne reconnait pas comme true/false
    etc..

    La question que je n'ai pas encore résolu, comment je fais la liaison entre la description DTD+XML et l'analyse de mon fichier binaire.

    A+

  4. #4
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    cela suppose alors que ta structure contient de nouvelles données que tu n'exploites pas, ou des données en moins ou de taille différente, sinon je ne vois pas l'intérêt car ton traitement restera le même.

    et dans ce cas, il est à mon avis tout aussi simple de créer un fichier de description externe.

    dans un projet j'avais besoin de faire des dumps de structures provenant d'un protocole réseau, au lieu de recompiler mon programme à chaque fois j'ai créer une mini syntaxe inspirée des records Pascal:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
      Version  : Cardinal; // 32 bits
      DataSize : Byte;     // 8bits
      Data     : array[&DataSize] of Byte; // "DataSize" octets
      Serial   : array[10] of char; // 10 caractères
      Nom      : ASCIIZ; // chaîne de longueur variable terminée par #0

    ça demande un tout petit peu de travail au départ pour un gros gain par la suite, et la syntaxe peut aussi être plus rigide et facile à lire (par le programme, mais bien moins par le programmeur)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    U32 Version
    U8 DataSize
    A[&DataSize]U8 Data
    A[10]C Serial
    Z Nom
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 48
    Points : 31
    Points
    31
    Par défaut
    Bonjour,
    Merci pour ce retour.
    C'est clairement un cas similaire, il s'agit d'analyser un protocole.
    Ce dernier évolue en permanence, d'ou ce besoin.
    Avais-tu des "conditions" à traiter dans ton cas ?
    Exemple :
    Si Bitn=1 alors
    structure suivant = TStructType1
    sinon Structure suivante = TStructurType2

    Merci.
    Cordialement,

  6. #6
    Expert éminent sénior
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Points : 28 445
    Points
    28 445
    Par défaut
    Citation Envoyé par Annaced Voir le message
    Bonjour,
    Merci pour ce retour.
    C'est clairement un cas similaire, il s'agit d'analyser un protocole.
    Ce dernier évolue en permanence, d'ou ce besoin.
    Avais-tu des "conditions" à traiter dans ton cas ?
    Exemple :
    Si Bitn=1 alors
    structure suivant = TStructType1
    sinon Structure suivante = TStructurType2

    Merci.
    Cordialement,
    pas exactement, chaque paquet avait un ID unique, du coup je prenais le record correspondant et je me contentais de dumper les informations sans les traiter.

    ceci dit, en relisant ta question je vois qu'on te propose de te livrer le DTD...ce n'est donc pas toi qui te farcirai la description du binaire ? ... et que viens faire le XML là dedans ?
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. parcourir la structure d'un document xml (fichier .xsd ou .dtd)
    Par hajlao dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 28/06/2011, 16h03
  2. Réponses: 4
    Dernier message: 23/09/2010, 15h17
  3. Traduire un fichier binaire en XML
    Par zejo63 dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 21/06/2007, 11h57
  4. Transcrire un fichier binaire en XML
    Par zejo63 dans le forum XML/XSL et SOAP
    Réponses: 1
    Dernier message: 19/06/2007, 08h20
  5. [XML][BdD] Insertion de fichiers binaires dans un XML
    Par saidsefrou dans le forum XML/XSL et SOAP
    Réponses: 2
    Dernier message: 13/03/2007, 09h25

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