Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.09.04;
Скачать: CL | DM;

Вниз

Архиватор   Найти похожие ветки 

 
Cerberus ©   (2005-08-09 21:01) [0]

Где есть исходники архиватора, любого. Желательно под DOS (на паскале).


 
KilkennyCat ©   (2005-08-09 21:10) [1]

а статья с теорией сжатия (без исходников) не подойдет?


 
Cerberus ©   (2005-08-09 21:12) [2]

Давай. Попробую но всётаки желательно на исходник посмотреть.


 
Adder ©   (2005-08-09 21:16) [3]

Попробуй здесь поискать:
http://pascal.sources.ru/archives/index.htm


 
KilkennyCat ©   (2005-08-09 21:21) [4]

http://rtfms.ru/page.php?id=20&PHPSESSID=5c3740b7703d6d489821c4fcafb50b40


 
3DxFantastika ©   (2005-08-09 21:38) [5]

Program LZHTest;

{ This is a demo program to illstrate the use of the LZH unit.
 it implements a very simple 1 file at a time compressor program.

 Author : Douglas P. Webb
}

uses LZH;

CONST
 MaxBuf = 4096;     { Must be bigger than the biggest chunk being asked for. }

Type
 BufType = Array[1..MaxBuf] OF BYTE;
 BufPtr = ^BufType;

VAR
 InBuf,OutBuf : BufPtr;
 infile,Outfile : FILE;
 s : STRING;
 Bytes_Written : LongInt;
 Size : LongInt;
 Temp : WORD;

{$F+}

Procedure GetBlock(VAR Target; NoBytes:Word; VAR Actual_Bytes:Word);
CONST
 Posn : Word = 1;
 Buf : Word = 0;

VAR
 Temp:Word;

BEGIN
 IF (Posn > Buf) OR (Posn + NoBytes > SUCC(Buf)) THEN
   BEGIN
     IF Posn > Buf THEN
       BEGIN
         BlockRead(InFile,InBuf^,MaxBuf,Buf);
         Write("+");
       END
     ELSE
       BEGIN
         Move(InBuf^[Posn],InBuf^[1],Buf-Posn);
         BlockRead(InFile,InBuf^[Buf-Posn],MaxBuf-(Buf-Posn),Temp);
         Buf := Buf-Posn+Temp;
         Write("+");
       END;
     IF Buf = 0 THEN
       BEGIN
         Actual_Bytes := 0;
         Writeln;
         Exit;
       END;
     Posn := 1;
   END;
 Move(InBuf^[Posn],Target,NoBytes);
 INC(Posn,NoBytes);
 IF Posn > SUCC(Buf) THEN
   Actual_Bytes := NoBytes -(Posn-SUCC(Buf))
 ELSE Actual_Bytes := NoBytes;
END;

Procedure PutBlock(VAR Source; NoBytes:Word; VAR Actual_Bytes:Word);
CONST
 Posn : Word= 1;

VAR
 Temp:Word;

BEGIN
 If NoBytes = 0 THEN    { Flush condition }
   BEGIN
     BlockWrite(OutFile,OutBuf^,PRED(Posn),Temp);
     EXIT;
   END;
 IF (Posn > MaxBuf) OR (Posn + NoBytes > SUCC(MaxBuf)) THEN
   BEGIN
     BlockWrite(OutFile,OutBuf^,PRED(Posn),Temp);
     Posn := 1;
   END;
 Move(Source,OutBuf^[Posn],NoBytes);
 INC(Posn,NoBytes);
 Actual_Bytes := NoBytes;
END;

{$F-}

BEGIN
 IF (paramcount <> 3) THEN
   BEGIN
     Writeln("Usage:lzhuf e(compression)|d(uncompression) infile outfile");
     halt(1);
   END;
 s := paramstr(1);
 IF NOT (s[1] IN ["D","E","d","e"]) THEN
   Halt(1);
 Assign(infile,paramstr(2));
 reset(infile,1);
 Assign(outfile,Paramstr(3));
 Rewrite(outfile,1);
 New(InBuf);
 New(OutBuf);
 IF (upcase(s[1]) = "E") THEN
   BEGIN
      Size := Filesize(InFile);
      BlockWrite(OutFile,Size,Sizeof(LongInt));
      LZHPack(Bytes_Written,GetBlock,PutBlock);
      PutBlock(Size,0,Temp);
   END
 ELSE
   BEGIN
     BlockRead(Infile,Size,Sizeof(LongInt));
     LZHUnPack(Size,GetBlock,PutBlock);
     PutBlock(Size,0,Temp);
   END;
 Dispose(OutBuf);
 Dispose(InBuf);
 Close(Infile);
 Close(OutFile);
END.


 
3DxFantastika ©   (2005-08-09 21:40) [6]

LZH.PAS => http://www.webfile.ru/449548


 
Ded Moroz ©   (2005-08-11 13:04) [7]

http://sf.net/
http://freshmeat.net/


 
Poirot ©   (2005-08-11 13:55) [8]

Вот а сразу сходить на http://www.compression.ru ?
:) Архивчик статей и исходников в 700 метров :)


 
TUser ©   (2005-08-11 15:01) [9]

У blackman"а есть статья "Идея арифметического кодирования". Там есть исходник.



Страницы: 1 вся ветка

Текущий архив: 2005.09.04;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.036 c
14-1123743923
syte_ser78
2005-08-11 11:05
2005.09.04
Вопрос по нокиа 3100


14-1123752846
.ruslan
2005-08-11 13:34
2005.09.04
Смена дизайна на www.delphimaster.ru


4-1121263034
SergeyDon
2005-07-13 17:57
2005.09.04
сообжение сервису.


4-1121348763
Subdigger
2005-07-14 17:46
2005.09.04
SC_RESTORE


6-1116575092
Zavs
2005-05-20 11:44
2005.09.04
как соедениться с FTP-сервером, через прокси