Bonjour,
Travaillant actuellement sur un Bot Dofus et sur un logiciel de gestion d'items et dialogues.
J'ai décidé de recréer de zero une classe pour chargé et lire les .d2i rapidement en en ne comsommant pas beaucoup de mémoire.
Je me suis dis que peut être des nouveaux venu avait la flemme de comprendre et d'écrir le reader.
Je ferais aussi une version pour les d2o après.
Description
C'est une Class Library (.dll) en VB.NET
Il y a la possibilité d'utiliser l'option FastLoad qui permet d'economiser plus de ram.
FastLoad:
Le FastLoad lit à chaque fois les indexes du fichier. Ceci permet d'alléger la mémoire utilisé au runtime. Cette option est pratique pour les gens qui ont pas beaucoup de d2i à récupérer. En revanche une query sera plus lente si elle est vers la fin des indexes.
Mémoire: environ 6,4Mo
Query: 0ms à 97ms
Le But serait d'impléménter un système de cache par la suite.
SlowLoad:
Le SlowLoad de son côté charge toutes les informations d'un coup en mémoire. Ceci signifie une utilisation importante mais permet d'avoir un temps de query très petit.
Mémoire: environ 64,5Mo
Query: 0ms à 2ms
Temps de chargement: environ 1300ms
il y a aussi la possibilité de choisir d'afficher le texte du d2i avec son mode diacritique ou non. Ainsi que d'afficher les textes des messages ui (ui.chat.check0).
Version
1.1.0.0 (actuelle) :
- Ajout de la fonction GetUi
- Revue complète du SlowLoad et FastLoad
1.2.0.0 (prochaine) :
- Ajout d'un système de cache pour le FastLoad
- Ajouter le SlowLoad et FastLoad aux UI
- Ajouter les diacritique au GetUi
Fonctionnement
Class FastReader:
Chemin: le chemin du d2i
FastLoad: Activer ou désactiver le FastLoad
Fonction GetText:
ID: l'ID du texte associé
Diacritique: Afficher la version diacritique du texte.
Fonction GetUi:
MySearch: le message ui dont il faut trouver le texte.
Exemple
VB.NET
Dim myReader As New FastReader(pather & "\i18n_fr.d2i", True)
Console.WriteLine(myReader.GetText(1, False))
Console.WriteLine(myReader.GetUi("ui.chat.check6"))
C#
FastReader myReader = new FastReader(pather + "\\i18n_fr.d2i", true);
Console.WriteLine(myReader.GetText(1, false));
Console.WriteLine(myReader.GetUi("ui.chat.check6"));
Screens
Slow Load:
Fast Load:
![[Image Introuvable]](https://image.noelshack.com/fichiers/2017/26/2/1498565803-goodfastperf.png)
Téléchargements
Virus Total:
https://www.virustotal.com/en/file/f44c24bb9b6c917ea7fc85b40b49f0068eda5be9764464d59294d56349ae2c2f/analysis/1498565553/
Download:
https://mega.nz/#!N35jRYLS!SIq2jrPUu5I0rmTEACoBdN56NGlaqRfpNTkWWfNKdAg
Cordialement,
The Falcon