Показать сообщение отдельно
Старый 22.05.2009, 20:48   #217
Phantom
Элита
 
Аватар для Phantom
 
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений
(для 1,833 пользователей)
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.

Вот класс на PHP для создания ZIP архива:
<?php
class zip{
public 
$a=array();
public 
$b=array();
public 
$c=0;
public function 
addDir($e){
$e=str_replace('\\','/',$e);
$this->b[]="\x50\x4b\x01\x02\x00\x00\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".pack("v",strlen($e))."\x00\x00\x00\x00\x00\x00\x00\x00\x10\x00\x00\x00".pack('V',$this->c).$e;
$this->c+=strlen($this->a[]="\x50\x4b\x03\x04\x0a\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00".pack("v",strlen($e))."\x00\x00".$e."\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00");
}
public function 
addFile($i,$e){
$e=str_replace('\\','/',$e);
$j=strlen($i);
$k=crc32($i);
$l=substr(gzcompress($i),2,-4);
$m=strlen($l);
$this->b[]="\x50\x4b\x01\x02\x00\x00\x14\x00\x00\x00\x08\x00\x00\x00\x00\x00".pack('V',$k).pack('V',$m).pack('V',$j).pack('v',strlen($e))."\x00\x00\x00\x00\x00\x00\x00\x00\x20\x00\x00\x00".pack('V',$this->c).$e;
$this->c+=strlen($this->a[]="\x50\x4b\x03\x04\x14\x00\x00\x00\x08\x00\x00\x00\x00\x00".pack('V',$k).pack('V',$m).pack('V',$j).pack('v',strlen($e))."\x00\x00".$e.$l.pack('V',$k).pack('V',$m).pack('V',$j));
}
public function 
getZip(){
$i=implode('',$this->a);
$n=implode('',$this->b);
return 
$i.$n."\x50\x4b\x05\x06\x00\x00\x00\x00".pack('v',count($this->b)).pack('v',count($this->b)).pack('V',strlen($n)).pack('V',$this->c)."\x00\x00";
}
}
?>
Надо найти реализацию gzcompress на чём-нибудь близком к Java и тогда написание не составит труда.
(Offline)
 
Ответить с цитированием