Afficher un message
Vieux 13/05/2008, 00h16   #1292 (permalink)
Profil
Manic
Membre de Légende
Ancienneté  100%
Ancienneté 100%
 
Avatar de Manic
 
Date d'inscription: mai 2006
Localisation: Québec
Pays :
Messages: 819
Téléchargements: 0
Uploads: 0
Merci: 0
Remercié 7 fois dans 4 Posts
Par défaut

Pour les bytes nuls, une boucle permet de trouver le bon nombre assez facilement. Leur nombre varie de zéro jusqu'à 31... Une taille de zéro = 0 bytes nuls et une taille de un = 31 bytes nuls. À partir de 31, on continue de soustraire pour trouver le reste. Assez simple, mais cela ne s'applique que pour la section SCNF. Les autres sections utilise probablement une autre gamme de chiffres pour chaque taille.

Voici la boucle que j'ai créer:
Code:
function null_bytes_length(data_size:Integer): Integer;
var current_num, total_null_bytes:Integer;
begin
        //Trouve le bon nombre de bytes nuls
        current_num := 0;
        total_null_bytes := 0;

        while current_num <> data_size do
        begin
                if total_null_bytes = 0 then
                begin
                        total_null_bytes := 31;
                end
                else
                begin
                        Dec(total_null_bytes);
                end;

                Inc(current_num);
        end;

        Result := total_null_bytes;
end;
Il y a peut-être une manière plus simple d'intégrer ça, mais j'ai pas trop cherché.

Pour la «solution de rechange» pour ne pas faire planter le jeu avec la taille des sections, je pense qu'il serait quand même bien de mettre une option à quelque part pour l'activer ou la désactiver.
__________________
Recherchez sur le forum avant de poser des questions!
Et je parles le français, pas le langage SMS... et vous?

Dernière modification par Manic ; 13/05/2008 à 01h52.
Manic est déconnecté   Réponse avec citation