Nymouas
Messages postés34Date d'inscriptionsamedi 21 août 2004StatutMembreDernière intervention20 mai 2005
-
18 sept. 2004 à 18:24
Nymouas
Messages postés34Date d'inscriptionsamedi 21 août 2004StatutMembreDernière intervention20 mai 2005
-
19 sept. 2004 à 10:55
Bonsoir,
J'ai déjà poser une question similaire à celle ci précédemment mais je préfère en créer une nouvelle plus précise.
Je voudrais savoir s'il est possible de créer une DLL pour mirc qui effectue son calcul en background sans interrompre - freezer mirc et qui enverrait un event à mirc lorsque le DLL aura fini son exécution du très gros calcul. J'ai vu qu'il existait l'évenement on signal. Il s'agit de créer un dll crc pour calculer le crc d'un fichier et qui m'enverrait sous forme d'event (de signal) le nom du fichier et le crc caclculer car la commande $crc me freeze mirc pour les trop gros fichier.
Si cela est possible, pourriez-vous me mettre sur la voie, merci.
@++
PS : actuellement g repris le code C d'une fonction de calcul crc32 dont g créé un exe qui me calcule le crc et m'écrit le résultat (le crc) dans un fichier (sfv). Dans mon script, je lance ce programme sur le fichier qui m'intéresse. J'estime le temps de calcul par la taille du fichier à calculer et je lance un timer (1fois) qui vérifie si le fichier qui contient le crc existe et si c le cas, lis la réponse. Dans le cas contraire, je relance ce timer (1fois) jusqu'au moment où le fichier qui contient le crc existe
En code cela donne :
;calculate the crc32 of the file $1 and run the crcchecker
alias crccalc {
var %ff = $1-
var %sizeff = $file($1-).size if (((%crcc.minsize <%sizeff) || (%crcc.minsize $null)) && ((%sizeff <= %crcc.maxsize) || (%crcc.maxsize == $null))) {
if (%crcc.intcrc == 0) {
;write the sfv file
crcwrite %ff
;executes the crc checker with a delay
.timer 1 $round( [ $calc(%sizeff / 10000000) ] ,0) crccheck %ff
}
}
;show the calculate CRC of the file $1, and check it if the crc is in the filename
alias crccheck {
var %ff = $1- $+ .sfv
;checks if the crc-sfv file exists
if ($exists(%ff)) {
;read the sfv
var %sfv = $read(%ff)
var %crc = $right(%sfv,8)
var %crce = $extractcrc($1-)
if (%crcc.keepsfv == 0) .remove " $+ [ %ff ] $+ "
;show the check result
wcrcalc
echo @CRCCalculator $timestamp 12 $+ [ $1- ] 13 %crc $iif(%crc == %crce,12is 3OK) $iif((%crce != $null) && (%crce != %crc),12is 4NOT OK : %crce)
}
else {
;the timer for crccheck is run one more time since the sfv file doesn't yet exist
.timer 1 %crcc.time crccheck $1-
}
}
A voir également:
Création d'une DLL s'exécutant sans interrompre le script ?