Bonjour,
Je débute dans le domaine et je tiens avant tout pour mon premiers message remercier ce forum pour tout ces tutoriels ! (je code en python)
Excusez moi de up un sujet vieux de 3 ans, mais je me suis inspiré de votre code afin de réaliser la même chose.
Après coup, j'obtiens dans le dictionnaire 1040 clés (ids)
import os
p = 'F:/Bureau/bot dofus/Décompilation/com/ankamagames/dofus/network/messages'
def listdirectory(path):
fichiers = []
for root, dirs, files in os.walk(path):
for i in files:
fichiers.append(os.path.join(root, i))
return fichiers
def Ids2(files_path, ):
dictIds = dict()
for file_path in files_path:
with open(file_path, 'r', encoding='utf-8') as file:
r = file.read()
key = 'protocolId:uint ='
find = r.find(key)
if find != -1: # si il y a une occurence de la key
find = r.find(key) #borne debut
find2 = r.find(';', find) #borne de fin
indice = int(r[find + len(key):find2]) # on recupere l'indice au milieu
nom = os.path.basename(file_path)[:-3] # on recupere le nom du fichier
dictIds[indice] = nom # on ajoute dans le dic l'id
return dictIds
files_path = listdirectory(p) # generation de la liste de tout les fichiers (arborescence)
dictIds = Ids2(files_path)
print(dictIds)
ids = sorted(list(dictIds.keys()))
print(ids)
print(len(ids))
print(len(set(ids)))
Le problème est que les clés vont de 1 à 6736 au maximum.
Apres avoir mis toutes les clés dans une liste puis de l'avoir trier j'obtiens cette liste :
[1, 2, 3, 4, 10, 20, 21, 22, 30, 40, 41, 42, 50, 75, 76, 101, 109, 110, 111, 112, ... , 6729, 6730, 6731, 6732, 6733, 6734, 6735, 6736]
Je me demande donc si le fait que certain id sont skip est normal ou si cela viens de l'algorithme.
Merci d'avance !