|
12.05.2009, 19:56
|
#211
|
Знающий
Регистрация: 10.08.2006
Сообщений: 254
Написано 3 полезных сообщений (для 3 пользователей)
|
Re: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
В процессе написания одной софтины потребовалась реализация такой возможности: одномерный динамический массив типа String,
Программа получает большое количество данных, но каждый раз количество элементов предугадать сложно. А если сразу создавать максимально возможный объем - далеко не на всех телефонах работает. Буду благодарен за помощь)
|
(Offline)
|
|
22.05.2009, 09:41
|
#212
|
Знающий
Регистрация: 18.03.2009
Сообщений: 223
Написано 10 полезных сообщений (для 17 пользователей)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
А можно ли сделать библу для создания .zip архивов? ну и чтения и извлекания заодно)
__________________
И суслики вам не помогут
|
(Offline)
|
|
22.05.2009, 13:04
|
#213
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
Сообщение от demon112
А можно ли сделать библу для создания .zip архивов? ну и чтения и извлекания заодно)
|
Теоретически можно, но сложно.
|
(Offline)
|
|
22.05.2009, 16:45
|
#214
|
Знающий
Регистрация: 18.03.2009
Сообщений: 223
Написано 10 полезных сообщений (для 17 пользователей)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
Очень сложно?(
__________________
И суслики вам не помогут
|
(Offline)
|
|
22.05.2009, 20:00
|
#215
|
Троллота
Регистрация: 09.07.2007
Сообщений: 1,829
Написано 554 полезных сообщений (для 1,772 пользователей)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
Сообщение от demon112
Очень сложно?(
|
Я так понимаю, это из-за необходимости наличия большого объема памяти или нет?
|
(Offline)
|
|
22.05.2009, 20:12
|
#216
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
Сообщение от Tadeus
Я так понимаю, это из-за необходимости наличия большого объема памяти или нет?
|
Да в общем-то нет, дело не в памяти. Конечно, очень большой архив распаковать не получится, но распаковка/упаковка небольших архивов в java возможна, примеры тому - jZipMan и MiniCommander.
Вопрос в сложности кода библиотеки. Ведь распаковка архива - задача нетривиальная, собственных наработок на эту тему у меня нет, а готовые решения найти не удается. Сегодня в очередной раз полез в гугл, (искал и раньше, но ничего хорошего не нашел), так вот, единственное что нашел - сорцы ReadManiac'а. Там вроде-как есть работа с zip, но только распаковка. Так что буду ковырять, возможно удастся сделать распаковку, а на счет упаковки - там еще сложнее.
|
(Offline)
|
|
22.05.2009, 20:48
|
#217
|
Элита
Регистрация: 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)
|
|
25.05.2009, 11:55
|
#218
|
Знающий
Регистрация: 18.03.2009
Сообщений: 223
Написано 10 полезных сообщений (для 17 пользователей)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
А как в миникомандере и в других прогахархивы создают и распаковывают? или они сами реализовали и нискем не делятся кодом??
__________________
И суслики вам не помогут
|
(Offline)
|
|
25.05.2009, 16:28
|
#219
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
Сообщение от demon112
А как в миникомандере и в других прогахархивы создают и распаковывают? или они сами реализовали и нискем не делятся кодом??
|
Похоже, именно так.
Вообще исходники классов для распаковки я нашел, буду ковырять.
Только вся загвоздка в том, что на данный момент очень большие проблемы со временем. Так что, библиотека скорее всего будет, но вот когда - неизвестно.
|
(Offline)
|
|
25.05.2009, 21:39
|
#220
|
Мастер
Регистрация: 06.09.2007
Адрес: Донецк, ДНР
Сообщений: 1,023
Написано 298 полезных сообщений (для 713 пользователей)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
А на PHP вообще реально запаковщик реализовать?
Если я захочу сделать Java конструктор для какого-нибудь приложения?
|
(Offline)
|
|
25.05.2009, 23:44
|
#221
|
Знающий
Регистрация: 10.08.2006
Сообщений: 254
Написано 3 полезных сообщений (для 3 пользователей)
|
Re: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
Вполне реально. Есть несколько готовых библиотек для работы с архивами.
|
(Offline)
|
|
26.05.2009, 00:14
|
#222
|
Оптимист
Регистрация: 07.01.2006
Сообщений: 961
Написано 105 полезных сообщений (для 259 пользователей)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
jZipMan я делал на базе какой-то библиотеки, по-моему ASoft, помню там были глюки именно с упаковкой.
Кстати, многие платформы поддерживают распаковку в своих классах, например com.motorola.zip
|
(Offline)
|
|
26.05.2009, 02:59
|
#223
|
Модератор
Регистрация: 03.04.2007
Сообщений: 2,252
Написано 597 полезных сообщений (для 817 пользователей)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
То, что я накопал, и есть на базе asoft.
А вот на счет вшитых в платформу упаковщиков - это интересно, первый раз о таком слышу.
Тем более интересно потому, что нативные методы всегда работают быстрее.
|
(Offline)
|
|
26.05.2009, 03:04
|
#224
|
Элита
Регистрация: 14.06.2008
Адрес: Украина, Киев
Сообщений: 2,273
Написано 754 полезных сообщений (для 1,833 пользователей)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
А на PHP вообще реально запаковщик реализовать?
Если я захочу сделать Java конструктор для какого-нибудь приложения?
|
Я тремя постами выше готовый класс на PHP написал для запаковки в zip. Я уже собаку съел на динамической запаковке JAR приложений с помощью PHP.
|
(Offline)
|
|
Сообщение было полезно следующим пользователям:
|
|
27.05.2009, 12:29
|
#225
|
Оператор ЭВМ
Регистрация: 30.01.2009
Сообщений: 41
Написано одно полезное сообщение (для 5 участников)
|
Ответ: Запросы на написание библиотек. Библиотеки запрашивать только здесь.
попутно помнится jzipmanом запаковывал папки 300-500 MB
на нокии 5300 с heap 2 mb!
__________________
MPCoder
V_V
|
(Offline)
|
|
Ваши права в разделе
|
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 13:27.
|