forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Основной форум (http://forum.boolean.name/forumdisplay.php?f=49)
-   -   O LIB.JSR75 (http://forum.boolean.name/showthread.php?t=6440)

temned 01.10.2008 21:07

O LIB.JSR75
 
я обращаюсь не по теме, но думал, что вопрос затеряется. У меня вопрос о библиотеке jsr75, как использовать GET_DIRTS? вот часть моего кода: uses jsr75; var e,v:string; m: boolean; begin e:=jsr75.get_roots; v:=jsr75.get_dirts(e); repeat drawtext(v,0,0); repaint; delay(20); until m=false; end.

ViNT 01.10.2008 21:14

Ответ: O LIB.JSR75
 
Советую для этого использовать библиотеку Lib_jsr75ex http://forum.boolean.name/showthread.php?t=4766, там модель поиска приближена к паскалевской.

temned 01.10.2008 21:22

как получить папки?
 
она у меня есть, но как ее использовать, что бы получить папки? И если можете, то обьясните как пользоваться jsr75

Piligrim 01.10.2008 21:25

Ответ: O LIB.JSR75
 
функция get_roots возвращает имеющиеся в системе диски в виде 'a|b|e' или 'phone|SD' так что сразу применить её результат в get_dirs получится только если диск один.

temned 01.10.2008 21:41

jsr75ex не удобно
 
подскажите, как пользоватся get_dirts из jsr75? ведь не зря же ее придумали? а использование jsr75ex не удобен на сонериках, потому что приходится подтверждать запросы, которые нельзя отключить, а запросов столько, сколько файлов или папок находит либа. ПОМОГИТЕ!

Piligrim 01.10.2008 22:07

Ответ: O LIB.JSR75
 
а почему ты решил, что в jsr75 будет по другому? там тоже будут запросы на файлы и папки.

temned 01.10.2008 22:33

помогите
 
НУ там наверно будет один запрос, а не 10, 20 или сколько у вас там файлов... НУ тогда помогите, как реализовать get_dirts без jsr75ex. ИЛИ НА худой конец, как с помощью jsr75ex, только как сделать так, что бы СЕрик не запрашивал сотни раз, как в примере от vinta-IMAGE WIEVER. A если можете поделитесь исходником, только не image wiewer.

ViNT 01.10.2008 22:37

Ответ: помогите
 
Цитата:

Сообщение от TEMNED (Сообщение 87302)
НУ там наверно будет один запрос, а не 10, 20 или сколько у вас там файлов... НУ тогда помогите, как реализовать get_dirts без jsr75ex. ИЛИ НА худой конец, как с помощью jsr75ex, только как сделать так, что бы СЕрик не запрашивал сотни раз, как в примере от vinta-IMAGE WIEVER. A если можете поделитесь исходником, только не image wiewer.

Без запросов только с халмером будет, а так другого способа получения списка папок нет(вообще нет в FileConnectionAPI) - по сути, в jsr75 и jsr75ex используются одни и те же функции для поиска, только метод отдачи результатов разный.

temned 01.10.2008 22:54

Ответ: O LIB.JSR75
 
НУ СКАЖИТЕ КАК МНЕ ИСПОЛЬЗОВАТЬ get_dirts, или как по другому можно получить папки?

Piligrim 02.10.2008 10:10

Ответ: O LIB.JSR75
 
Код:

function        ShowFiles(path : String) : String;
var
        clicked : Command;
        s, p, i : integer;
        files : String;
begin       
        ShowFiles := '';
        repeat
                ShowMenu(path, CH_IMPLICIT);
                addCommand(cmdOk);
                addCommand(cmdSelect);
                if length(path)<>0 then begin
                        i := menuAppendString('..');
                        files := jsr75.get_dirs(path);
                        files := files+jsr75.get_files(path);
                end else
                        files := jsr75.get_roots;
                p := pos(files, '|');
                while p>0 do begin
                        i := menuAppendString(copy(files, 0, p));
                        files := copy(files, p+1, length(files));
                        p := pos(files, '|');
                end;
                repeat
                        clicked := getClickedCommand;
                until clicked <> emptyCommand;
                path := path + ui.list_get_string(menuGetSelectedIndex);
  until clicked = cmdSelect;
        ShowFiles := path;
end;

нет хождения назад, но думаю это и сам можешь сделать.

temned 03.10.2008 16:47

Ответ: O LIB.JSR75
 
piligrim, дал плыз полный код, а то у меня не получается

Piligrim 03.10.2008 20:26

Ответ: O LIB.JSR75
 
Вложений: 1
Пожалуйста. Повторяю, нет хождения назад и проверки на папки.

temned 06.10.2008 07:57

много запросов
 
Парни, а как на соериках отменить много запросов, так нельзя, ну может можно из java как-то? А то запросов 10, и это только штоб полушить папки. А так скатаешь какую-нибудь прогу с ФС, там один запрос, :SOS: :SOS: :SOS:

ViNT 06.10.2008 11:24

Ответ: O LIB.JSR75
 
По-моему, такой возможности в java нет, в любом случае для каждого найденного элемента нужно делать запрос, является данный элемент папкой или нет. Если только предположить, что в именах папок нет точек и нет файлов без расширения. Тогда теоретически можно разделять папки и файлы по структуре имени, получая только один запрос при входе в папку, но это, конечно же, не вариант.

temned 06.10.2008 16:03

а как же?
 
ну как же в java прогах делают один запрос, даже если взять JIMM с доступом к ФС, или opera mini, там один запрос, может кто знает как?:SOS: :SOS: :SOS:

EVIL_USER 07.10.2008 02:36

Ответ: O LIB.JSR75
 
Именно на сонэрике один запрос?
Насколько я знаю, это у сонэриков политика такая тупая, чтобы разработчики сертификаты покупали.

Решается установкой так называемого халмера, но это не слабая дыра, через которую можно клоном редбраузера счёт в глубокий минус загнать.

odd 07.10.2008 06:00

Ответ: O LIB.JSR75
 
Не знаю. У меня на SE можно полезть в настройки доступа приложения и там выставить разрешение на чтение и запись информации. Так что потом он запросов никаких не делает. Это уже цивилизованное регулирование прав приложения. Сертификаты это конечно хорошо, но разработчикам за них надо платить и притом неплохие деньги.

temned 26.12.2008 17:15

Ответ: O LIB.JSR75
 
а на некоторих нельзя так. Подскажите все таки грамотное пользование

ViNT 26.12.2008 19:44

Ответ: O LIB.JSR75
 
Проблема решается только на уровне конкретного телефона, никакими изменениями в коде библиотеки/приложения её не решить.

aNNiMON 28.12.2008 01:07

Ответ: O LIB.JSR75
 
Не согласен!
При открытии потока по дефолту:
Код:

FileConnection f = (FileConnection)Connector.open("file:///"+fileName);
используется Connector.READ_WRITE, но чтобы уменьшить количество запросов необходимо поставить Connector.READ либо Connector.WRITE при чтении либо при записи соответственно.
Вот пример открытия файла на SE с одним запросом:
Код:

FileConnection f = (FileConnection)Connector.open("file:///"+fileName, Connector.READ);
Минус - не будет универсальности работы с файлом. То есть этот метод нужно использовать только там, где Вы точно знаете, где поставить чтение, а где запись.

temned 28.12.2008 01:21

Ответ: O LIB.JSR75
 
обьясни на примере

ViNT 28.12.2008 01:22

Ответ: O LIB.JSR75
 
Да, так можно, но всеравно запросы будут. Пусть меньше, но будут. Я давно собирался сделать это в своей библиотеке, но все руки не доходят.

ViNT 28.12.2008 01:32

Ответ: O LIB.JSR75
 
Вложений: 1
Держи новую версию jsr75ex, теперь при поиске должно быть меньше запросов (только на чтение), проверить не могу, но должно работать. Все функции как в старой версии. Тут реализовано то, о чем писал aNNiMON.


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

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