Changement donnees hexa en masse avec incrementation
kosteloos
Messages postés
3
Statut
Membre
-
sorlo -
sorlo -
bonjour voila pour être bref je voudrais changer 6 caractères hexa mais dans plusieurs fichiers
je m`explique j`ai conçu ce code :
---------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------
le fichier.dat contient 7AEB02 ensuite remplacer par 7AEB03 puis écrire le nouveau fichier dans fichier2.dat
en gros la suite est de ré-ouvrir fichier2.dat et incrémenter la valeur hexa de 1 est l`écrire dans fichier3.dat ect.....
je bloque sur une boucle apparemment.
merci d`avance de votre aide :)
je m`explique j`ai conçu ce code :
---------------------------------------------------------------------------------------------------
fichier1 = "fichier.dat"
with open(fichier1, "rb") as fs:
contenu = fs.read() # le contenu est de type "bytes" (=octets)
octet1 = bytes.fromhex('7AEB02') # octet à chercher
octet2 = bytes.fromhex('7AEB03') # octet à mettre à la place
index = contenu.find(octet1)
if index<0:
print("Octet non trouvé!")
else:
print("Octet cherché se trouve à l'index:", index)
contenu = contenu[:index] + octet2 + contenu[index+1:]
fichier2 = "fichier2.dat"
with open(fichier2, "wb") as fd:
fd.write(contenu)
---------------------------------------------------------------------------------------------------
le fichier.dat contient 7AEB02 ensuite remplacer par 7AEB03 puis écrire le nouveau fichier dans fichier2.dat
en gros la suite est de ré-ouvrir fichier2.dat et incrémenter la valeur hexa de 1 est l`écrire dans fichier3.dat ect.....
je bloque sur une boucle apparemment.
merci d`avance de votre aide :)
Configuration: Windows / Firefox 68.0
1 réponse
-
Bonsoir, quel est l'objectif final ?
Jusqu"à combien doit être augmentée la valeur hexa ?
Je ferai quelque chose comme
hexa = '7AEB02' octet = bytes.fromhex(hexa) with open('fichier.dat', 'rb') as fs: contenu = fs.read() for i in range(1, 6): nom2 = 'fichier%i.dat' % i hexa = hex(int(hexa, 16) + 1) octet2 = bytes.fromhex(hexa) with open(nom2, 'rb') as fs: contenu2 = fs.read() contenu2 = contenu2.replace(octet, octet2) with open(nom2, 'wb') as fs: fs.write(contenu2) contenu = contenu2 octet = octet2
Aucunement testé.