Bonjour à tous,
je cherche à savoir si il est possible d'ouvrir et de lire le contenu d'un fichier Intel HEX avec VBA ?
Si c'est le cas j'aimerai apprendre à le faire,
merci d'avance pour vos aides
Laurent
Bonjour à tous,
je cherche à savoir si il est possible d'ouvrir et de lire le contenu d'un fichier Intel HEX avec VBA ?
Si c'est le cas j'aimerai apprendre à le faire,
merci d'avance pour vos aides
Laurent
Bonjour.
D'après https://fr.wikipedia.org/wiki/HEX_(Intel) c'est un fichier texte donc tu devrais pouvoir l'importer comme tel dans Excel.
Onglet Données/Fichier texte
A+
Vous voulez une réponse rapide et efficace à vos questions téchniques ?
Ne les posez pas en message privé mais dans le forum, vous bénéficiez ainsi de la compétence et de la disponibilité de tous les contributeurs.
Et aussi regardez dans la FAQ Access et les Tutoriaux Access. C'est plein de bonnes choses.
bonjour,
merci pour la réponse, mais j'ai peut être mal posé ma question. C'est un fichier qui s'ouvre dans un éditeur hexadécimal, mais mon besoin et de comprendre comment convertir les données en données compréhensibles
Si on parle bien des fichiers pour programmer des EEPROM, ça fait presque 30 ans que je n'y ait pas touché.
Mais si mes souvenirs sont pas trop mauvais, il s'agissait d'adresses en haxa dans un fichier texte.
Si c'est bien le cas, pas de raison de ne pas pouvoir l'ouvrir avec Excel.
Perso, je ne me souviens plus de la structure des lignes, donc il faudra certainement jouer avec les séparateurs, quitte à en remettre un couche après ouverture en utilisant Convertir dans le ruban Données.
Avec VBA, utilise OpenText plutôt que Open, il permet plus de contrôle.
A lire : https://docs.microsoft.com/fr-FR/off...books.opentext
Etant donné que ce format est aussi obsolète que les EEPROM, il va être difficile de trouver quelqu'un sur ce forum qui se rappelle de la structure, si tant ait qu'il en ait entendu parlé.
Donc, sans plus d'info de ta part, il va être difficile de progresser dans la résolution de cette demande.
Qu'est-ce que tu obtiens si tu essaye de l'ouvrir avec un notepad ?
bonjour,
voici un exemple de quelques lignes quand je l'ouvre avec notepad
il s'agit en effet de fichier permettant d'etre flashé dans les calculateurs de voiture ce fichier et souvent couplé avec un fichier A2L.:0200000480007A
:1000000020000080780259B30000000000000000CA
:100010000000000000000000CB4CAB4034B354BFE4
:10002000914001F8D9FF2046D4FF0D00C004DC0F39
:100030000090080008000800363636363636363668
:100040003636363636363636363636363636363650
:100050003636363636363636363636363636363640
:100060003636363636363636363636363636363630
:100070003636363636363636363636363636363620
:100080003636363636363636363636363636363610
:100090003636363636363636363636363636363600
:1000A00036363636363636363636363636363636F0
:1000B00036363636363636363636363636363636E0
:1000C00036363636363636363636363636363636D0
:1000D00036363636363636363636363636363636C0
:1000E00036363636363636363636363636363636B0
:1000F00036363636363636363636363636363636A0
:10010000363636363636363636363636363636368F
:10011000363636363636363636363636363636367F
:10012000363636363636363636363636363636366F
:10013000363636363636363636363636363636365F
C'est bien ce que je pensais : ce sont des adresses haxa en clair.
Donc, ça peut s'ouvrir dans Excel comme n'importe quel fichier texte.
Cela dit, je ne vois pas trop l'intérêt de l'ouvrir dans Excel plutôt que dans n'importe quel éditeur de texte.
Je pense que je dois mal m'exprimer et je m'en excuse, le fait qu'on puisse ouvrir le fichier dans Excel je le savais, ce que je cherche à faire c'est décoder le fichier hexa pour retrouver les données qu'il contient (tableau de valeurs, nom de variable etc.)
Le code hexadecimal des EEPROM n'est pas celui du PC donc je ne pense pas qu'il existe un convertisseur de langage HEX dans Excel.
La seule chose qu'il serait possible, c'est de séparer le code en paires de caractère pour avoir les adresses hexadécimale.
Pour le traduire en clair, il faudrait établir une table de conversion de 256 ligne, spécifiant le caractère correspondant au code hexa. Il suffirait alors d'une fonction RECHERCHEV() pour faire la conversion.
Bonjour,
Effectivement tu t'exprime mal, il est très peu probable que ces données soient codées, au contraire ce sont des données pures, une série d'octets relativement facile à extraire.
Je suppose que tu cherches plutôt à savoir ce que représente ces octets : cela relève de la rétro-ingénierie.
Tout d'abord, il faudrait connaitre le type exact de microcontrôleur auquel sont destinés ces octets, car chaque microcontrôleur a son propre langage.
A partir de là, on pourrait utiliser un désassembleur adéquat pour déterminer s'il s'agit d'un programme en langage machine avec ses données associés, ou s'il s'agit simplement de données destinées à une EPROM (ou une EEPROM).
Dans le premier cas, une fois le programme traduit en langage 'assembleur' et avec une bonne analyse (longue et minutieuse) on peut facilement isoler les données.
Dans le second cas, il faut aussi posséder le programme contenu dans le microcontrôleur, auquel les données sont destinées.
Mais dans les deux cas, ça s'arrête là : on peut analyser le déroulement du programme, mais pas savoir à quoi il sert et encore moins comprendre ce que représentent les données associées.
Il faudrait un plan très détaillé du calculateur et de ses périphériques (au sens large), beaucoup de patience et de nombreuses heures pour taquiner l'espoir de deviner ce que les données représentent.
Bonjour,
Les micros processeurs ou contrôleurs Intel ont tous le même langage assembleur.
Ilnsufis de trouver le datasheet du plus récent pour trouver les code associer. Ce qui ne serait pas le cas pour Motorola.
http://www.mathemainzel.info/files/x86asmref.html#stos
Ici il est question de convertir le code assembleur en instruction assembleur MoveA 22
Dans ce cas, la solution que j'ai proposé (table de conversion) ne suffit plus puisque la nature d'une donnée peut dépendre de la nature des données précédentes.
Il faudrait un gros code VBA bourré de Select Case.
Partager