{ ini adalah antarmuka kode c++.
kode sumber c++ tidak disertakan dalam arsip ini.
lihat file readme.txt untuk informasi lebih lanjut. }
#ifndef __coding_h__
#definisikan __coding_h__
#ifndef coding_impex
#define coding_impex __declspec(dllimport)
#endif
kelas coding_impex avldecode
{
publik:
~avldecode();
kode avldecode();
readbuf int virtual
( batal*buf,
unsignedmaxlen,
tidak ditandatangani &rdlen
) = 0;
intget(batal *buf, unsignedmaxlen);
intget(batal *buf, unsignedmaxlen, unsigned &rdlen)
{kembali ((int)(rdlen = dapatkan(buf, maxlen)) < 0)? rdlen :0 ;
}
batalkan pengaturan ulang();
pribadi:
????????? bagian pribadi tidak termasuk ???????????????????
};
kelas coding_impex avlencode
{
publik:
~avlencode();
kode avlen();
menulisbuf int virtual
( batal*buf,
tidak ditandatangani
) = 0;
intput(batal *buf, tidak ditandatangani);
batalkan pengaturan ulang();
pribadi:
????????? bagian pribadi tidak disertakan ?????????????
};
#endif //__coding_h__
///encode.pas
{$m 8192,120000,120000}
menggunakan kode avl;
const ukuran buf=60000;
var p: penunjuk;
f,f1: berkas;
s: tali;
buf: penunjuk;
nomor: kata;
{$f+}
fungsi writetofile(var buf; n: integer): integer;
var nomor: kata;
mulai
blockwrite(f1,buf,n,angka);
akhir;
{$f-}
mulai
jika tidak mendapatkan memori maka
mulai
writeln('Memori di heap tidak cukup untuk mengkompres file.');
berhenti;
akhir;
s:=paramstr(1);
setencodeoutbuffer(@writetofile);
menugaskan(f,s);
{$i-}
jika s<>'' maka reset(f,1);
{$i+}
jika (ioresult<>0) atau (s='') maka
mulai
menulis;
writeln('penulis program turbo pascal ini dan kode c++ asli adalah');
writeln('alexander larkin( diterjemahkan ke turbo pascal dari c++ pada 27/09/1999 )');
menulis;
writeln('email:[dilindungi email]');
writeln('internet:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
menulis;
writeln('penggunaan: encode.exe infile outfile [kata sandi]');
menulis;
memori bebas;
berhenti;
akhir;
s:=paramstr(2);
menetapkan(f1,s);
{$i-}
jika s<>'' maka tulis ulang(f1,1);
{$i+}
jika (ioresult<>0) atau (s='') maka
mulai
tutup(f);
writeln('tidak dapat membuat file pencarian '+s);
memori bebas;
berhenti;
akhir;
set kata sandi(paramstr(3));
getmem(buf,bufsize);
mengulang
blockread(f,buf^,bufsize,angka);
encodeput(buf^,angka);
sampai angka<=0;
if num<0then writeln('tidak dapat mengkompres file. Anda melakukan kesalahan.');
pengaturan ulang kode;
tutup(f);
tutup(f1);
memori bebas;
akhir.
///decode.pas
{$m 8192,120000,120000}
menggunakan kode avl;
const ukuran buf=60000;
var p: penunjuk;
f,f1: berkas;
s: tali;
buf: penunjuk;
nomor: kata;
{$f+}
fungsi readfromfile(var buf; n: integer; var rdlen: integer): integer;
mulai
blockread(f,buf,n,rdlen);
bacadarifile:=0;
akhir;
{$f-}
mulai
jika tidak mendapatkan memori maka
mulai
writeln('memori di heap tidak cukup untuk mendekompresi file.');
berhenti;
akhir;
s:=paramstr(1);
setdecodeinbuffer(@readfromfile);
menugaskan(f,s);
{$i-}
jika s<>'' maka reset(f,1);
{$i+}
jika (ioresult<>0) atau (s='') maka
mulai
menulis;
writeln('penulis program turbo pascal ini dan kode c++ asli adalah');
writeln('alexander larkin( diterjemahkan ke turbo pascal dari c++ pada 27/09/1999 )');
menulis;
writeln('email:[dilindungi email]');
writeln('internet:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
menulis;
writeln('penggunaan: decode.exe infile outfile [kata sandi]');
menulis;
memori bebas;
berhenti;
akhir;
s:=paramstr(2);
menetapkan(f1,s);
{$i-}
jika s<>'' maka tulis ulang(f1,1);
{$i+}
jika (ioresult<>0) atau (s='') maka
mulai
tutup(f);
writeln('tidak dapat membuat file '+s);
memori bebas;
berhenti;
akhir;
getmem(buf,bufsize);
set kata sandi(paramstr(3));
mengulang
angka:=decodeget(buf^,bufsize);
jika angka<65535 maka blockwrite(f1,buf^,num,num);
sampai (angka=0) atau (angka=65535);
jika num=65535 maka writeln('kesalahan! data rusak. tidak dapat mendekompresi file.');
tutup(f);
tutup(f1);
memori bebas;
akhir.