{ هذه واجهة كود c++.
كود مصدر C++ غير متضمن في هذا الأرشيف.
ابحث عن ملف readme.txt لمزيد من المعلومات. }
#ifndef __coding_h__
#تعريف __coding_h__
#ifndef coding_impex
#تعريف coding_impex __declspec(dllimport)
#endif
فئة الترميز_impex avldecode
{
عام:
~avldecode();
avldecode();
الظاهري int readbuf
(باطلة * بوف،
,
&rdlen غير موقعة
) = 0;
intget(void *buf, unsignedmaxlen);
intget(void *buf, unsignedmaxlen, unsigned &rdlen)
{return ((int)(rdlen = get(buf, maxlen)) < 0)؟ ردلين :0 ;
}
إعادة تعيين باطلة ()؛
خاص:
؟؟؟؟؟؟؟؟؟ الجزء الخاص غير متضمن ؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟
};
فئة الترميز_impex avlencode
{
عام:
~avlencode();
avlencode();
Virtual int writebuf
(باطلة * بوف،
com.unsignedlen
) = 0;
intput(void *buf, unsignedn);
إعادة تعيين باطلة ()؛
خاص:
؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ الجزء الخاص غير مدرج ؟؟؟؟؟؟؟؟؟؟؟؟؟؟
};
#endif //__coding_h__
///encode.pas
{$م 8192,120000,120000}
يستخدم رموز avl؛
const bufsize=60000;
فار ص: المؤشر؛
و، f1: ملف؛
ق: سلسلة؛
بوف: المؤشر؛
الرقم: كلمة؛
{$f+}
وظيفة writetofile(var buf; n: integer): integer;
فار نوم: كلمة؛
يبدأ
blockwrite(f1,buf,n,num);
نهاية؛
{$و-}
يبدأ
إن لم يكن getmemory ثم
يبدأ
writeln("الذاكرة غير كافية في الكومة لضغط الملف.');
وقف؛
نهاية؛
s:=paramstr(1);
setencodeoutbuffer(@writetofile);
تعيين (و، ق)؛
{$أنا-}
إذا كان s<>'' ثم إعادة التعيين(f,1);
{$i+}
إذا (ioresult<>0) أو (s='') إذن
يبدأ
كتابة؛
writeln('مؤلف برنامج توربو باسكال ورمز c++ الأصلي هو');
writeln('ألكسندر لاركين (تمت ترجمته إلى توربو باسكال من لغة c++ بتاريخ 27/09/1999 )');
كتابة؛
writeln('البريد الإلكتروني:[email protected]');
writeln('الإنترنت:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
كتابة؛
writeln('usage: encode.exe infile outfile [كلمة المرور]');
كتابة؛
ذاكرة مجانية؛
وقف؛
نهاية؛
s:=paramstr(2);
تعيين(f1,s);
{$أنا-}
إذا كان s<>'' ثم أعد كتابة (f1,1);
{$i+}
إذا (ioresult<>0) أو (s='') إذن
يبدأ
إغلاق (و)؛
writeln("لا يمكن إنشاء ملف البحث"+s);
ذاكرة مجانية؛
وقف؛
نهاية؛
setpassword(paramstr(3));
getmem(buf,bufsize);
يكرر
blockread(f,buf^,bufsize,num);
encodeput(buf^,num);
حتى الرقم<=0;
إذا كان num<0 ثم writeln('لا يمكن ضغط الملف. لقد فعلت شيئًا خاطئًا.');
إعادة تعيين التشفير.
إغلاق (و)؛
إغلاق(f1);
ذاكرة مجانية؛
نهاية.
///decode.pas
{$م 8192,120000,120000}
يستخدم رموز avl؛
const bufsize=60000;
فار ص: المؤشر؛
و، f1: ملف؛
ق: سلسلة؛
بوف: المؤشر؛
الرقم: كلمة؛
{$f+}
وظيفة readfromfile(var buf; n: عدد صحيح; var rdlen: عدد صحيح): عدد صحيح;
يبدأ
blockread(f,buf,n,rdlen);
readfromfile:=0;
نهاية؛
{$و-}
يبدأ
إن لم يكن getmemory ثم
يبدأ
writeln('الذاكرة غير كافية في الكومة لفك ضغط الملف.');
وقف؛
نهاية؛
s:=paramstr(1);
setdecodeinbuffer(@readfromfile);
تعيين (و، ق)؛
{$أنا-}
إذا كان s<>'' ثم إعادة التعيين(f,1);
{$i+}
إذا (ioresult<>0) أو (s='') إذن
يبدأ
كتابة؛
writeln('مؤلف برنامج توربو باسكال ورمز c++ الأصلي هو');
writeln('ألكسندر لاركين (تمت ترجمته إلى توربو باسكال من لغة c++ بتاريخ 27/09/1999 )');
كتابة؛
writeln('البريد الإلكتروني:[email protected]');
writeln('الإنترنت:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
كتابة؛
writeln('usage: decode.exe infile outfile [password]');
كتابة؛
ذاكرة مجانية؛
وقف؛
نهاية؛
s:=paramstr(2);
تعيين(f1,s);
{$أنا-}
إذا كان s<>'' ثم أعد كتابة (f1,1);
{$i+}
إذا (ioresult<>0) أو (s='') إذن
يبدأ
إغلاق (و)؛
writeln("لا يمكن إنشاء ملف"+s);
ذاكرة مجانية؛
وقف؛
نهاية؛
getmem(buf,bufsize);
setpassword(paramstr(3));
يكرر
num:=decodeget(buf^,bufsize);
إذا كان الرقم <65535، فسيتم كتابة blockwrite(f1,buf^,num,num);
حتى (num=0) أو (num=65535)؛
إذا كان num=65535 ثم writeln('خطأ! البيانات تالفة. لا يمكن فك ضغط الملف.');
إغلاق (و)؛
إغلاق(f1);
ذاكرة مجانية؛
نهاية.