{ Dies ist eine Schnittstelle von C++-Code.
C++-Quellcode ist in diesem Archiv nicht enthalten.
Weitere Informationen finden Sie in der Datei readme.txt. }
#ifndef __coding_h__
#define __coding_h__
#ifndef programming_impex
#define binding_impex __declspec(dllimport)
#endif
Klasse „coding_impex“ avldecode
{
öffentlich:
~avldecode();
avldecode();
virtueller int readbuf
( void*buf,
unsignedmaxlen,
unsigniert &rdlen
) = 0;
intget(void *buf, unsignedmaxlen);
intget(void *buf, unsignedmaxlen, unsigned &rdlen)
{return ((int)(rdlen = get(buf, maxlen)) < 0)? rdlen :0 ;
}
void reset();
Privat:
????????? privater Teil nicht inbegriffen ???????????????????
};
Klasse „coding_impex“ avlencode
{
öffentlich:
~avlencode();
avlencode();
virtueller int writebuf
( void*buf,
unsignedlen
) = 0;
Eingabe(void *buf, unsignedn);
void reset();
Privat:
?????????? privater Teil nicht enthalten ?????????????
};
#endif //__coding_h__
///encode.pas
{$m 8192,120000,120000}
verwendet Avlcodes;
const bufsize=60000;
var p: Zeiger;
f,f1: Datei;
s: Zeichenfolge;
buf: Zeiger;
num: Wort;
{$f+}
Funktion writetofile(var buf; n: integer): integer;
var num: Wort;
beginnen
blockwrite(f1,buf,n,num);
Ende;
{$f-}
beginnen
Wenn nicht, dann getmemory
beginnen
writeln('nicht genügend Speicher im Heap, um die Datei zu komprimieren.');
Halt;
Ende;
s:=paramstr(1);
setencodeoutbuffer(@writetofile);
zuweisen(f,s);
{$i-}
if s<>'' then reset(f,1);
{$i+}
if (ioresult<>0) oder (s='') then
beginnen
writeln;
writeln('Der Autor dieses Turbo-Pascal-Programms und des ursprünglichen C++-Codes ist');
writeln('alexander larkin( am 27.09.1999 von C++ nach Turbo Pascal übersetzt)');
writeln;
writeln('e-mail:[email protected]');
writeln('internet:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
writeln;
writeln('usage: encode.exe infile outfile [password]');
writeln;
freier Speicher;
Halt;
Ende;
s:=paramstr(2);
zuweisen(f1,s);
{$i-}
if s<>'' then rewrite(f1,1);
{$i+}
if (ioresult<>0) oder (s='') then
beginnen
schließen(f);
writeln('Suchdatei kann nicht erstellt werden '+s);
freier Speicher;
Halt;
Ende;
setpassword(paramstr(3));
getmem(buf,bufsize);
wiederholen
blockread(f,buf^,bufsize,num);
encodeput(buf^,num);
bis num<=0;
wenn num<0 then writeln('Datei kann nicht komprimiert werden. Sie machen etwas falsch.');
Encoderset;
schließen(f);
schließen(f1);
freier Speicher;
Ende.
///decode.pas
{$m 8192,120000,120000}
verwendet Avlcodes;
const bufsize=60000;
var p: Zeiger;
f,f1: Datei;
s: Zeichenfolge;
buf: Zeiger;
num: Wort;
{$f+}
Funktion readfromfile(var buf; n: integer; var rdlen: integer): integer;
beginnen
blockread(f,buf,n,rdlen);
readfromfile:=0;
Ende;
{$f-}
beginnen
Wenn nicht, dann getmemory
beginnen
writeln('nicht genügend Speicher im Heap, um die Datei zu dekomprimieren.');
Halt;
Ende;
s:=paramstr(1);
setdecodeinbuffer(@readfromfile);
zuweisen(f,s);
{$i-}
if s<>'' then reset(f,1);
{$i+}
if (ioresult<>0) oder (s='') then
beginnen
writeln;
writeln('Der Autor dieses Turbo-Pascal-Programms und des ursprünglichen C++-Codes ist');
writeln('alexander larkin( am 27.09.1999 von C++ nach Turbo Pascal übersetzt)');
writeln;
writeln('e-mail:[email protected]');
writeln('internet:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
writeln;
writeln('Verwendung: decode.exe Infile Outfile [Passwort]');
writeln;
freier Speicher;
Halt;
Ende;
s:=paramstr(2);
zuweisen(f1,s);
{$i-}
if s<>'' then rewrite(f1,1);
{$i+}
if (ioresult<>0) oder (s='') then
beginnen
schließen(f);
writeln('Datei kann nicht erstellt werden '+s);
freier Speicher;
Halt;
Ende;
getmem(buf,bufsize);
setpassword(paramstr(3));
wiederholen
num:=decodeget(buf^,bufsize);
wenn num<65535 then blockwrite(f1,buf^,num,num);
bis (num=0) oder (num=65535);
wenn num=65535 then writeln('Fehler! Daten beschädigt. Datei kann nicht dekomprimiert werden.');
schließen(f);
schließen(f1);
freier Speicher;
Ende.