{ c'est l'interface du code C++.
Code source c++ non inclus dans cette archive.
consultez le fichier readme.txt pour plus d'informations. }
#ifndef __coding_h__
#définir __coding_h__
#ifndef codage_impex
#define coding_impex __declspec(dllimport)
#endif
classe coding_impex avldecode
{
publique:
~avldecode();
avldecode();
lecture int virtuelle
( vide*buf,
non signémaxlen,
&rdlen non signé
) = 0 ;
intget(void *buf, unsignedmaxlen);
intget(void *buf, non signémaxlen, non signé &rdlen)
{return ((int)(rdlen = get(buf, maxlen)) < 0) ? rdlen :0 ;
}
annuler la réinitialisation ();
privé:
????????? partie privative non incluse ???????????????????
} ;
classe coding_impex avlencode
{
publique:
~avlencode();
avlencode();
buf d'écriture int virtuel
( vide*buf,
non signé
) = 0 ;
intput(void *buf, non signé);
annuler la réinitialisation ();
privé:
?????????? partie privée non incluse ?????????????
} ;
#endif //__coding_h__
///encoder.pas
{millions de dollars 8192,120000,120000}
utilise des codes avl ;
constbuffsize=60000 ;
var p : pointeur ;
f,f1 : fichier ;
s : chaîne ;
buf : pointeur ;
num : mot ;
{$f+}
fonction writetofile(var buf; n: entier): entier;
var num : mot ;
commencer
blockwrite(f1,buf,n,num);
fin;
{$f-}
commencer
sinon, récupère de la mémoire, alors
commencer
writeln('pas assez de mémoire dans le tas pour compresser le fichier.');
arrêt;
fin;
s:=paramstr(1);
setencodeoutbuffer (@writetofile);
attribuer(f,s);
{$i-}
si s<>'' alors reset(f,1);
{$i+}
si (ioresult<>0) ou (s='') alors
commencer
écrire;
writeln('l'auteur de ce programme turbo pascal et du code C++ original est');
writeln('alexander larkin(traduit en turbo pascal de c++ le 27/09/1999 )');
écrire;
writeln('e-mail:[email protégé]');
writeln('internet:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
écrire;
writeln('usage : encode.exe infile outfile [mot de passe]');
écrire;
mémoire libre ;
arrêt;
fin;
s:=paramstr(2);
attribuer(f1,s);
{$i-}
si s<>'' alors réécrivez(f1,1);
{$i+}
si (ioresult<>0) ou (s='') alors
commencer
fermer(f);
writeln('impossible de créer le fichier de recherche '+s);
mémoire libre ;
arrêt;
fin;
setpassword(paramstr(3));
getmem(buf,bufsize);
répéter
blockread(f,buf^,bufsize,num);
encodeput(buf^,num);
jusqu'à ce que num<=0 ;
si num<0 alors writeln('ne peut pas compresser le fichier. vous faites quelque chose de mal.');
réinitialisation de l'encodage ;
fermer(f);
fermer(f1);
mémoire libre ;
fin.
///decode.pas
{millions de dollars 8192,120000,120000}
utilise des codes avl ;
constbuffsize=60000 ;
var p : pointeur ;
f,f1 : fichier ;
s : chaîne ;
buf : pointeur ;
num : mot ;
{$f+}
function readfromfile(var buf; n: entier; var rdlen: entier): entier;
commencer
blockread(f,buf,n,rdlen);
lecture du fichier :=0 ;
fin;
{$f-}
commencer
sinon, récupère de la mémoire, alors
commencer
writeln('pas assez de mémoire dans le tas pour décompresser le fichier.');
arrêt;
fin;
s:=paramstr(1);
setdecodeinbuffer (@readfromfile);
attribuer(f,s);
{$i-}
si s<>'' alors reset(f,1);
{$i+}
si (ioresult<>0) ou (s='') alors
commencer
écrire;
writeln('l'auteur de ce programme turbo pascal et du code C++ original est');
writeln('alexander larkin(traduit en turbo pascal de c++ le 27/09/1999 )');
écrire;
writeln('e-mail:[email protégé]');
writeln('internet:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
écrire;
writeln('usage : decode.exe infile outfile [mot de passe]');
écrire;
mémoire libre ;
arrêt;
fin;
s:=paramstr(2);
attribuer(f1,s);
{$i-}
si s<>'' alors réécrivez(f1,1);
{$i+}
si (ioresult<>0) ou (s='') alors
commencer
fermer(f);
writeln('impossible de créer le fichier '+s);
mémoire libre ;
arrêt;
fin;
getmem(buf,bufsize);
setpassword(paramstr(3));
répéter
num:=decodeget(buf^,bufsize);
si num<65535 alors blockwrite(f1,buf^,num,num);
jusqu'à (num=0) ou (num=65535) ;
si num=65535 alors writeln('erreur ! données corrompues. impossible de décompresser le fichier.');
fermer(f);
fermer(f1);
mémoire libre ;
fin.