function writetofile(var buf; n: integer): integer; var num: word; begin blockwrite(f1,buf,n,num); end;
{$f-}
begin if not getmemory then begin writeln('not enough memory in heap to compress file.'); halt; end; s:=paramstr(1); setencodeoutbuffer(@writetofile); assign(f,s); {$i-} if s<>'' then reset(f,1); {$i+} if (ioresult<>0) or (s='') then begin writeln; writeln('the author of this turbo pascal program and original c++ code is'); writeln('alexander larkin ( translated to turbo pascal from c++ on 27/09/1999 )'); 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; freememory; halt; end; s:=paramstr(2); assign(f1,s); {$i-} if s<>'' then rewrite(f1,1); {$i+} if (ioresult<>0) or (s='') then begin close(f); writeln('cannot create find file '+s); freememory; halt; end; setpassword(paramstr(3)); getmem(buf,bufsize); repeat blockread(f,buf^,bufsize,num); encodeput(buf^,num); until num<=0; if num<0 then writeln('cannot compress file. you do something wrong.'); encodereset; close(f); close(f1); freememory; end.
function readfromfile(var buf; n: integer; var rdlen: integer): integer; begin blockread(f,buf,n,rdlen); readfromfile:=0; end;
{$f-}
begin if not getmemory then begin writeln('not enough memory in heap to decompress file.'); halt; end; s:=paramstr(1); setdecodeinbuffer(@readfromfile); assign(f,s); {$i-} if s<>'' then reset(f,1); {$i+} if (ioresult<>0) or (s='') then begin writeln; writeln('the author of this turbo pascal program and original c++ code is'); writeln('alexander larkin ( translated to turbo pascal from c++ on 27/09/1999 )'); writeln; writeln('e-mail: [email protected]'); writeln('internet: http://www.geocities.com/siliconvalley/6235/tpdl.htm'); writeln; writeln('usage: decode.exe infile outfile [password]'); writeln; freememory; halt; end; s:=paramstr(2); assign(f1,s); {$i-} if s<>'' then rewrite(f1,1); {$i+} if (ioresult<>0) or (s='') then begin close(f); writeln('cannot create file '+s); freememory; halt; end; getmem(buf,bufsize); setpassword(paramstr(3)); repeat num:=decodeget(buf^,bufsize); if num<65535 then blockwrite(f1,buf^,num,num); until (num=0) or (num=65535); if num=65535 then writeln('error! data corrupted. cannot decompress file.'); close(f); close(f1); freememory; end.