forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Lib_jsr75: работа с файловой системой. (http://forum.boolean.name/showthread.php?t=5498)

Piligrim 06.01.2008 16:38

Lib_jsr75: работа с файловой системой.
 
Вложений: 1
Последняя версия библиотеки.

GomZik 25.04.2008 01:28

Ответ: Lib_jsr75: работа с файловой системой.
 
А как избежать зависания при процедуре jsr75i.get_dirs(path) или get_files(path) когда в path нету либо файлов либо папок

ViNT 25.04.2008 15:40

Ответ: Lib_jsr75: работа с файловой системой.
 
Вообще зависать по-моему не должен.
Попробуйте воспользоваться функциями поиска из библиотеки jsr75ex, лежит здесь.

GomZik 25.04.2008 18:19

Ответ: Lib_jsr75: работа с файловой системой.
 
А он зависает не от этой функции, я просто полученную информацию неправильно обробатывал... Ща всё ок, спасибо

GomZik 07.05.2008 22:53

Ответ: Lib_jsr75: работа с файловой системой.
 
Можно в библиотеку добавить функцию открывания и чтения нескольких фаилов одновременно?

ViNT 07.05.2008 23:51

Ответ: Lib_jsr75: работа с файловой системой.
 
Пишу библиотеку с такими функциями, но с первого раза не получилось, что-то делаю не так. В общем попытаюсь разобраться.

GomZik 08.05.2008 00:58

Ответ: Lib_jsr75: работа с файловой системой.
 
Жду... Очень очень очень =)

ViNT 08.05.2008 01:17

Ответ: Lib_jsr75: работа с файловой системой.
 
Сделал, оказалось, компилятор глючил.
http://forum.boolean.name/showthread.php?t=5994

Трава 30.07.2009 21:21

Ответ: Lib_jsr75: работа с файловой системой.
 
В либе багов немерено просто. К примеру, на моём SE K800i мидлет просто вылетает. Тоже самое и на HTC (ПДА у меня).

ViNT 31.07.2009 03:05

Ответ: Lib_jsr75: работа с файловой системой.
 
Цитата:

Сообщение от Трава (Сообщение 112538)
В либе багов немерено просто. К примеру, на моём SE K800i мидлет просто вылетает. Тоже самое и на HTC (ПДА у меня).

Сам пользовался этой библиотекой на SE k510i и на пропатченной Moto L9, полет нормальный.
99%, что ошибка в коде (также, возможно, неверно задано имя файла, например, не соблюден регистр символов) или в настройках прав приложения.

Трава 05.08.2009 18:54

Ответ: Lib_jsr75: работа с файловой системой.
 
Ну а как тады писать путь? e/file.txt - так ведь? Я так пишу... Один хрен не пашет. И e:/file.txt пытался. Бесполезно

Mach94 12.08.2009 19:33

Ответ: Lib_jsr75: работа с файловой системой.
 
Цитата:

Сообщение от Трава (Сообщение 113096)
Ну а как тады писать путь? e/file.txt - так ведь? Я так пишу... Один хрен не пашет. И e:/file.txt пытался. Бесполезно

Вылетать не должно, ты наверное цикл не поставил...
Что касается правильности написания пути, насколько я знаю, пишется так: /e:/file.txt
А вобще народ, неплохо еслиб ктонидь выложил исходничек... ну хотяб простенького ФМ...

Трава 13.08.2009 20:40

Ответ: Lib_jsr75: работа с файловой системой.
 
Да, путь пишеться так /e:/file.txt. На сониках так во всяком случае. Всё зависит от модели мобилы.

vad74 21.09.2009 12:45

Ответ: Lib_jsr75: работа с файловой системой.
 
pilgrim
Замерил время выполнения операций jsr75i.get_dirs и jsr75i.get_files. Оно примерно одинаковое и составило ~20мс на файл (SE K800). Т.е. если папка содержит 30 папок и файлов, то получить списки папок и затем файлов составит по 600мс. Понимаю что каждая из этих процедур шерстит весь каталог и выбирает нужный тип объектов. Можно ли для улучшения быстродействия добавить 1 процедуру? Идея такова, сначала программа вызывает процедуру получить полный список папок и файлов. Эта инфа остаётся в самой либе. Затем вызывается get_files('') и он выдаёт файлы с уже сохранённого списка. Тогда для получения папок и файлов либа будет только 1 раз шерстить память телефона. Ускорение почти в 2 раза.

ViNT 21.09.2009 20:49

Ответ: Lib_jsr75: работа с файловой системой.
 
Используй функции поиска из jsr75ex, там находятся все объекты по очереди, а программист сам проверяет, является ли данный объект папкой, т.е., все делается в один проход.

vad74 22.09.2009 20:04

Ответ: Lib_jsr75: работа с файловой системой.
 
ViNT
Переделал на использование jsr75ex.
1. Виснет при findfirst(Dir); Если в Dir нет папок или файлов, Вместо того чтоб вернуть пустую строку как в конце списка возвращает findnext.
2. Скорость работы примерно равна варианту с jsr75i, и составила 1200 мс на 30 папок и файлов. Почемуто выйгрыша нет. Вот процедура:
PHP код:

procedure ReadDir(MyDir string);  // читать все папки и файлы в 2 строки
var time integer;
begin
  time 
:= GetRelativeTimeMs;
  if 
MyDir '' then begin
    DirsStr 
:= jsr75ex.get_roots;  // взять корень файловой системы
    
FilesStr := '';
  
end  
  
else begin
    DirsStr 
:= '';  
    
FilesStr := '';
    
:= jsr75ex.findfirst('/'+MyDir);     // взять первый объект
    
while <> '' do begin
      
if jsr75ex.is_directory('/'+MyDir s) > 0 then
        DirsStr 
:= DirsStr '|'
      
else
        
FilesStr := FilesStr '|';
      
:= jsr75ex.findnext
    
end;  {while} 
  
end
  
DrawText(IntegerToString(GetRelativeTimeMs time), 10200);
  
repaint;
  
delay(2000); 
end


artemff 29.12.2009 01:33

Ответ: Lib_jsr75: работа с файловой системой.
 
У меня почему-то MP пишет нет ...
функций в jsr75i: Есть похоже только одна функция get_dirs...

Molegos 18.04.2010 11:13

Ответ: Lib_jsr75: работа с файловой системой.
 
Подскажите ,пожалуйста, почему у меня МП (2.02 и 3.0 бета 6) вылетает с ошибкой "Отправлять, не отправлять отчет" при компиляции кода?
PHP код:

jsr75i.open_file('/e:/res.txt');
res:=jsr75i.get_stream

Заранеее спасибо.

im_zorg 18.04.2010 12:44

Ответ: Lib_jsr75: работа с файловой системой.
 
Цитата:

Сообщение от Molegos (Сообщение 144967)
Подскажите ,пожалуйста, почему у меня МП (2.02 и 3.0 бета 6) вылетает с ошибкой "Отправлять, не отправлять отчет" при компиляции кода?
PHP код:

jsr75i.open_file('/e:/res.txt');
res:=jsr75i.get_stream

Заранеее спасибо.

Попробуй поставить совместимость с windows 98.
Правая кнопка мыши на ярлыке►Свойства►Совместимость.

Molegos 19.04.2010 11:14

Ответ: Lib_jsr75: работа с файловой системой.
 
При компиляции ошибка на строке с
jsr75i.open_file('/e:/res.txt');
error, identifier '(' is not a procedure or virable name.
Чего это такое?

ViNT 19.04.2010 14:34

Ответ: Lib_jsr75: работа с файловой системой.
 
Вообще это глюк MP, но ошибка видимо в том, что нет присваивания переменной результата, возвращаемого функцией.
Должно быть нечто в роде res:=jsr75i.open_file('/e:/res.txt');

DeaDCore 07.03.2013 18:44

Ответ: Lib_jsr75: работа с файловой системой.
 
Вложений: 1
Кроме исправления бага с зависаниями добавил:
Код:

public static int create_folder(String name) - создать папку
public static int folder_size(String name) - получить размер дериктории в байтах

Осмелился добавить себя в "доработчиков" библиотеки :rolleyes:

Fred-boy 11.05.2013 17:36

Ответ: Lib_jsr75: работа с файловой системой.
 
Piligrim, какой процедурой удаляется папка?

RblSb 05.03.2014 23:15

Ответ: Lib_jsr75: работа с файловой системой.
 
Вложений: 1
Небольшая модификация:
write_string_a - запись строки с преобразованием ascii>unicode (записывает русский текст в файл в win-кодировке)
Автор: DaGGeR


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

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