{ นี่คืออินเทอร์เฟซของโค้ด c++
ซอร์สโค้ด c++ ไม่รวมอยู่ในไฟล์เก็บถาวรนี้
ดูไฟล์ readme.txt สำหรับข้อมูลเพิ่มเติม -
#ifndef __coding_h__
#กำหนด __coding_h__
#ifndef coding_impex
#define coding_impex __declspec (dllimport)
#เอ็นดิฟ
คลาส coding_impex avldecode
-
สาธารณะ:
~avldecode();
avldecode();
int readbuf เสมือน
( เป็นโมฆะ*buf,
แม็กเลนที่ไม่ได้ลงนาม,
ไม่ได้ลงนาม &rdlen
) = 0;
intget(โมฆะ *buf, แม็กซ์เลนที่ไม่ได้ลงนาม);
intget (เป็นโมฆะ *buf, ที่ไม่ได้ลงนามmaxlen, ไม่ได้ลงนาม & rdlen)
{return ((int)(rdlen = get(buf, maxlen)) < 0)? ตกลง :0 ;
-
โมฆะรีเซ็ต ();
ส่วนตัว:
- ไม่รวมเอกชน ????????????????????
-
คลาส coding_impex avlencode
-
สาธารณะ:
~แอฟเลนโค้ด();
avlencode();
int writebuf เสมือน
( เป็นโมฆะ*buf,
ไม่ได้ลงนาม
) = 0;
อินพุต (เป็นโมฆะ *buf, ไม่ได้ลงนาม);
โมฆะรีเซ็ต ();
ส่วนตัว:
- ไม่รวมเอกชน ????????????
-
#endif //__coding_h__
///encode.pas
{$m 8192,120000,120000}
ใช้รหัส avl;
const bufsize=60000;
var p: ตัวชี้;
f,f1: ไฟล์;
s: สตริง;
buf: ตัวชี้;
หมายเลข: คำ;
{$ฉ+}
ฟังก์ชั่น writetofile (var buf; n: จำนวนเต็ม): จำนวนเต็ม;
var num: คำ;
เริ่ม
บล็อกเขียน(f1,buf,n,num);
จบ;
{$ฉ-}
เริ่ม
ถ้าไม่ได้รับหน่วยความจำแล้ว
เริ่ม
writeln('หน่วยความจำในฮีปไม่เพียงพอในการบีบอัดไฟล์');
หยุด;
จบ;
s:=พารามิเตอร์(1);
setencodeoutbuffer(@writetofile);
มอบหมาย(f,s);
{$i-}
ถ้า s<>'' ให้รีเซ็ต (f,1);
{$i+}
ถ้า (ioresult<>0) หรือ (s='') แล้ว
เริ่ม
เขียน;
writeln('ผู้เขียนโปรแกรม turbo pascal และโค้ด c++ ดั้งเดิมคือ');
writeln('alexander larkin( แปลเป็น turbo pascal จาก c++ เมื่อวันที่ 27/09/1999 )');
เขียน;
writeln('e-mail:[ป้องกันอีเมล]');
writeln('อินเทอร์เน็ต:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
เขียน;
writeln('การใช้งาน: encode.exe infile outfile [รหัสผ่าน]');
เขียน;
หน่วยความจำอิสระ;
หยุด;
จบ;
s:=พารามิเตอร์(2);
มอบหมาย(f1,s);
{$i-}
ถ้า s<>'' ให้เขียนใหม่ (f1,1);
{$i+}
ถ้า (ioresult<>0) หรือ (s='') แล้ว
เริ่ม
ปิด(ฉ);
writeln('ไม่สามารถสร้างไฟล์ค้นหา '+s);
หน่วยความจำอิสระ;
หยุด;
จบ;
ตั้งรหัสผ่าน(paramstr(3));
getmem(buf,บัฟไซส์);
ทำซ้ำ
blockread(f,buf^,bufsize,num);
เข้ารหัส (buf ^, num);
จนกระทั่ง num<=0;
ถ้า num<0 แล้ว writeln('ไม่สามารถบีบอัดไฟล์ได้ คุณทำอะไรผิด');
เข้ารหัสรีเซ็ต;
ปิด(ฉ);
ปิด(f1);
หน่วยความจำอิสระ;
จบ.
///decode.pas
{$m 8192,120000,120000}
ใช้รหัส avl;
const bufsize=60000;
var p: ตัวชี้;
f,f1: ไฟล์;
s: สตริง;
buf: ตัวชี้;
หมายเลข: คำ;
{$ฉ+}
ฟังก์ชั่น readfromfile (var buf; n: จำนวนเต็ม; var rdlen: จำนวนเต็ม): จำนวนเต็ม;
เริ่ม
บล็อกอ่าน(f,buf,n,rdlen);
อ่านจากไฟล์:=0;
จบ;
{$ฉ-}
เริ่ม
ถ้าไม่ได้รับหน่วยความจำแล้ว
เริ่ม
writeln('หน่วยความจำในฮีปไม่เพียงพอในการแตกไฟล์');
หยุด;
จบ;
s:=พารามิเตอร์(1);
setdecodeinbuffer(@readfromfile);
มอบหมาย(f,s);
{$i-}
ถ้า s<>'' ให้รีเซ็ต (f,1);
{$i+}
ถ้า (ioresult<>0) หรือ (s='') แล้ว
เริ่ม
เขียน;
writeln('ผู้เขียนโปรแกรม turbo pascal และโค้ด c++ ดั้งเดิมคือ');
writeln('alexander larkin( แปลเป็น turbo pascal จาก c++ เมื่อวันที่ 27/09/1999 )');
เขียน;
writeln('e-mail:[ป้องกันอีเมล]');
writeln('อินเทอร์เน็ต:http://www.geocities.com/siliconvalley/6235/tpdl.htm');
เขียน;
writeln('การใช้งาน: decode.exe infile outfile [รหัสผ่าน]');
เขียน;
หน่วยความจำอิสระ;
หยุด;
จบ;
s:=พารามิเตอร์(2);
มอบหมาย(f1,s);
{$i-}
ถ้า s<>'' ให้เขียนใหม่ (f1,1);
{$i+}
ถ้า (ioresult<>0) หรือ (s='') แล้ว
เริ่ม
ปิด(ฉ);
writeln('ไม่สามารถสร้างไฟล์ '+s);
หน่วยความจำอิสระ;
หยุด;
จบ;
getmem(buf,บัฟไซส์);
ตั้งรหัสผ่าน(paramstr(3));
ทำซ้ำ
num:=decodeget(buf^,bufsize);
ถ้า num<65535 ให้เขียนบล็อก (f1,buf^,num,num);
จนถึง (num=0) หรือ (num=65535);
ถ้า num = 65535 ดังนั้น writeln ('ข้อผิดพลาด! ข้อมูลเสียหาย ไม่สามารถขยายไฟล์ได้');
ปิด(ฉ);
ปิด(f1);
หน่วยความจำอิสระ;
จบ.