forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Запросы на написание библиотек. Библиотеки запрашивать только здесь. (http://forum.boolean.name/showthread.php?t=5502)

IVenoMI 12.05.2009 19:56

Re: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
В процессе написания одной софтины потребовалась реализация такой возможности: одномерный динамический массив типа String,
Программа получает большое количество данных, но каждый раз количество элементов предугадать сложно. А если сразу создавать максимально возможный объем - далеко не на всех телефонах работает. Буду благодарен за помощь)

demon112 22.05.2009 09:41

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
А можно ли сделать библу для создания .zip архивов? ну и чтения и извлекания заодно)

ViNT 22.05.2009 13:04

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
Цитата:

Сообщение от demon112 (Сообщение 105552)
А можно ли сделать библу для создания .zip архивов? ну и чтения и извлекания заодно)

Теоретически можно, но сложно.

demon112 22.05.2009 16:45

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
Очень сложно?(

Tadeus 22.05.2009 20:00

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
Цитата:

Сообщение от demon112 (Сообщение 105568)
Очень сложно?(

Я так понимаю, это из-за необходимости наличия большого объема памяти или нет? :)

ViNT 22.05.2009 20:12

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
Цитата:

Сообщение от Tadeus (Сообщение 105577)
Я так понимаю, это из-за необходимости наличия большого объема памяти или нет? :)

Да в общем-то нет, дело не в памяти. Конечно, очень большой архив распаковать не получится, но распаковка/упаковка небольших архивов в java возможна, примеры тому - jZipMan и MiniCommander.
Вопрос в сложности кода библиотеки. Ведь распаковка архива - задача нетривиальная, собственных наработок на эту тему у меня нет, а готовые решения найти не удается. Сегодня в очередной раз полез в гугл, (искал и раньше, но ничего хорошего не нашел), так вот, единственное что нашел - сорцы ReadManiac'а. Там вроде-как есть работа с zip, но только распаковка. Так что буду ковырять, возможно удастся сделать распаковку, а на счет упаковки - там еще сложнее.

Phantom 22.05.2009 20:48

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
Вот класс на PHP для создания ZIP архива:
PHP код:

<?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 и тогда написание не составит труда.

demon112 25.05.2009 11:55

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
А как в миникомандере и в других прогахархивы создают и распаковывают? или они сами реализовали и нискем не делятся кодом??

ViNT 25.05.2009 16:28

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
Цитата:

Сообщение от demon112 (Сообщение 105783)
А как в миникомандере и в других прогахархивы создают и распаковывают? или они сами реализовали и нискем не делятся кодом??

Похоже, именно так.
Вообще исходники классов для распаковки я нашел, буду ковырять.
Только вся загвоздка в том, что на данный момент очень большие проблемы со временем. Так что, библиотека скорее всего будет, но вот когда - неизвестно.

odd 25.05.2009 21:39

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
А на PHP вообще реально запаковщик реализовать?
Если я захочу сделать Java конструктор для какого-нибудь приложения?

IVenoMI 25.05.2009 23:44

Re: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
Вполне реально. Есть несколько готовых библиотек для работы с архивами.

Piligrim 26.05.2009 00:14

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
jZipMan я делал на базе какой-то библиотеки, по-моему ASoft, помню там были глюки именно с упаковкой.
Кстати, многие платформы поддерживают распаковку в своих классах, например com.motorola.zip

ViNT 26.05.2009 02:59

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
То, что я накопал, и есть на базе asoft.
А вот на счет вшитых в платформу упаковщиков - это интересно, первый раз о таком слышу.
Тем более интересно потому, что нативные методы всегда работают быстрее.

Phantom 26.05.2009 03:04

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
Цитата:

А на PHP вообще реально запаковщик реализовать?
Если я захочу сделать Java конструктор для какого-нибудь приложения?
Я тремя постами выше готовый класс на PHP написал для запаковки в zip. Я уже собаку съел на динамической запаковке JAR приложений с помощью PHP.

@llien 27.05.2009 12:29

Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
 
попутно помнится jzipmanом запаковывал папки 300-500 MB
на нокии 5300 с heap 2 mb!


Часовой пояс GMT +4, время: 07:23.

vBulletin® Version 3.6.5.
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Перевод: zCarot