Changement donnees hexa en masse avec incrementation

Fermé
kosteloos Messages postés 2 Date d'inscription jeudi 8 août 2019 Statut Membre Dernière intervention 8 août 2019 - Modifié le 8 août 2019 à 17:15
 sorlo - 11 août 2019 à 20:28
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 :

---------------------------------------------------------------------------------------------------

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
A voir également:

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é.
0