{esta es la interfaz del código c++.
El código fuente de C++ no está incluido en este archivo.
Busque el archivo readme.txt para obtener más información. }
#ifndef __codificación_h__
#definir __codificación_h__
#ifndef codificación_impex
#definir codificación_impex __declspec(dllimport)
#endif
clase codificación_impex avldecode
{
público:
~avldecode();
avldecode();
lectura int virtual
( vacío*buf,
maxlen sin firmar,
sin firmar & rdlen
) = 0;
intget(void *buf, unsignedmaxlen);
intget(void *buf, unsignedmaxlen, unsigned &rdlen)
{return ((int)(rdlen = get(buf, maxlen)) < 0)? rdlen :0 ;
}
reinicio nulo();
privado:
????????? parte privada no incluida ?????????????????????
};
clase codificación_impex avlencode
{
público:
~avlencode();
avlencode();
escritura virtual int
( vacío*buf,
sin firmar
) = 0;
intput(void *buf, unsignedn);
reinicio nulo();
privado:
?????????? parte privada no incluida ?????????????
};
#endif //__codificación_h__
///codificar.pas
{$ millones 8192,120000,120000}
utiliza códigos avl;
tamaño de buf constante = 60000;
var p: puntero;
f,f1: archivo;
s: cadena;
buf: puntero;
número: palabra;
{$f+}
función writetofile(var buf; n: entero): entero;
var número: palabra;
comenzar
escritura en bloque(f1,buf,n,num);
fin;
{$f-}
comenzar
si no obtengo memoria entonces
comenzar
writeln('no hay suficiente memoria en el montón para comprimir el archivo.');
detener;
fin;
s:=paramstr(1);
setencodeoutbuffer(@writetofile);
asignar(f,s);
{$yo-}
si s<>'' entonces reset(f,1);
{$yo+}
si (ioresult<>0) o (s='') entonces
comenzar
escrito;
writeln('el autor de este programa turbo pascal y del código original de C++ es');
writeln('alexander larkin(traducido a turbo pascal desde c++ el 27/09/1999)');
escrito;
writeln('correo electrónico:[correo electrónico protegido]');
writeln('internet:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
escrito;
writeln('uso: encode.exe archivo de entrada archivo de salida [contraseña]');
escrito;
memoria libre;
detener;
fin;
s:=paramstr(2);
asignar(f1,s);
{$yo-}
si s<>'' entonces reescribe (f1,1);
{$yo+}
si (ioresult<>0) o (s='') entonces
comenzar
cerrar(f);
writeln('no se puede crear el archivo de búsqueda'+s);
memoria libre;
detener;
fin;
establecer contraseña(paramstr(3));
getmem(buf,tamañobuf);
repetir
blockread(f,buf^,bufsize,num);
codificar(buf^,num);
hasta núm<=0;
si num<0 entonces writeln('no se puede comprimir el archivo. Has hecho algo mal.');
reinicio del codificador;
cerrar(f);
cerrar(f1);
memoria libre;
fin.
///decodificar.pas
{$ millones 8192,120000,120000}
utiliza códigos avl;
tamaño de buf constante = 60000;
var p: puntero;
f,f1: archivo;
s: cadena;
buf: puntero;
número: palabra;
{$f+}
función readfromfile(var buf; n: entero; var rdlen: entero): entero;
comenzar
blockread(f,buf,n,rdlen);
leer desde archivo:=0;
fin;
{$f-}
comenzar
si no obtengo memoria entonces
comenzar
writeln('no hay suficiente memoria en el montón para descomprimir el archivo.');
detener;
fin;
s:=paramstr(1);
setdecodeinbuffer(@readfromfile);
asignar(f,s);
{$yo-}
si s<>'' entonces reset(f,1);
{$yo+}
si (ioresult<>0) o (s='') entonces
comenzar
escrito;
writeln('el autor de este programa turbo pascal y del código original de C++ es');
writeln('alexander larkin(traducido a turbo pascal desde c++ el 27/09/1999)');
escrito;
writeln('correo electrónico:[correo electrónico protegido]');
writeln('internet:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
escrito;
writeln('uso: decode.exe archivo de entrada archivo de salida [contraseña]');
escrito;
memoria libre;
detener;
fin;
s:=paramstr(2);
asignar(f1,s);
{$yo-}
si s<>'' entonces reescribe (f1,1);
{$yo+}
si (ioresult<>0) o (s='') entonces
comenzar
cerrar(f);
writeln('no se puede crear el archivo '+s);
memoria libre;
detener;
fin;
getmem(buf,tamañobuf);
establecer contraseña(paramstr(3));
repetir
num:=decodeget(buf^,bufsize);
si num<65535 entonces blockwrite(f1,buf^,num,num);
hasta (num=0) o (num=65535);
si num=65535 entonces writeln('¡error! datos dañados. No se puede descomprimir el archivo.');
cerrar(f);
cerrar(f1);
memoria libre;
fin.