Fichier externe : lire le contenu hexadécimal
La lecture de la chaine hexa d'un fichier binaire peut être réalisée par la fonction flit() et moyennant un petit subterfuge dans la lecture des caractères. en effet flit() est conçue nativement pour une lecture de fichier texte et propose directement une conversion en code ascii des caractères lus.
L'idée est alors de d'utiliser la résolution automatique des types et un entier non signé sur 1 octet (0...255) facile à convertir en hexa.
Ensuite, on peut faire ce que l'on veut...
Bon dev.
cFichier est une chaine // contenu hexa du fichier
// Ouverture du fichier
nIdfic est un entier = fOuvre(MonFichier, foLecture)
SI nIdfic=-1 ALORS
Erreur('L'ouverture du fichier a échoué')
SINON
// récupère le nombre d'octets à lire
nbcar est un entier = fPositionne(nIdfic,0,fpFin)
ncar est un entier
fPositionne(nIdfic,0,fpDébut)
sCar est un entier sans signe sur 1 octet
fLit(nIdfic,1,&sCar) // nouvelle syntaxe : par adresse
TANTQUE ncar<nbcar
ncar++
// taitement de l'octet
// conversion de l'entier en valeur hexa
cfichier+=NumériqueVersChaine(sCar,'02X')
// octet suivant
fLit(nIdfic,1,&sCar)
FIN
// Fermeture du fichier
fFerme(nIdfic)
FIN
Cette Q&R a été trouvée sur WDForge.org : http://old.wdforge.org/modules/smartfaq/faq.php?faqid=9