forum.boolean.name

forum.boolean.name (http://forum.boolean.name/index.php)
-   Библиотеки (http://forum.boolean.name/forumdisplay.php?f=124)
-   -   Похоже, есть баги в либе Lib_jsr75i (http://forum.boolean.name/showthread.php?t=7888)

Skythrone 24.02.2009 14:33

Похоже, есть баги в либе Lib_jsr75i
 
В процессе работы с Lib_jsr75i я обнаружил следующие баги и недоработки.

1. В описании библиотеки есть следующая информация:
Код:

public static InputStream get_stream() - открыть файл как ресурс. доступны все операции с ресурсом
Реально данная функция отсутствует.

2. При повторном обращении к файлу библиотека зависает.
Я делаю так:
PHP код:

k:=file_size(full_filename);                
 
res:=open_file(full_filename);
// возвращает res=1
while(...) do
 
begin
   
...
  
s:=s+Chr(read_uns_byte);
   ...
 
end;

 
res:=close_file(full_filename);
// возвращает res=1 

При первом вызове данный код срабатывает без проблем. При повторном вызове файл открывается нормально, но при попытке прочитать байт - намертво виснет.

Коллеги, хотелось бы услышать ваше мнение по данным вопросам. Может быть, это я что-то неправильно делаю?

Трава 30.07.2009 21:25

Ответ: Похоже, есть баги в либе Lib_jsr75i
 
Реально либа бажная. И open_file тупит и read_line_a... Короч, полный абзац. Мой сонерик K800i просто выкидывает из мидлета без предупреждения.

ViNT 31.07.2009 02:58

Ответ: Похоже, есть баги в либе Lib_jsr75i
 
Цитата:

Сообщение от Трава (Сообщение 112539)
Реально либа бажная. И open_file тупит и read_line_a... Короч, полный абзац. Мой сонерик K800i просто выкидывает из мидлета без предупреждения.

Либа рабочая, возможно проблема в телефоне или в неправильном использовании.

Трава 05.08.2009 18:52

Ответ: Похоже, есть баги в либе Lib_jsr75i
 
Может быть... Но я всё делаю как в мануале написано! Вот пытался файл создать с использованием либы
Код:

program test;
uses jsr75i;
begin
        jsr75i.file_create('e/test.txt');
        drawText('Done', 0, 0);
        repaint;
        delay(3000);
end.

Не создаёт. Причём мобила просит разрешение на чтение\запись, тыкаю "да", а он мне фак в итоге. Прога нормально заканчивает работу, но файл не создаёться. Помоги если можешь, плз. Хочу прост hex-редактор написать

ViNT 06.08.2009 15:55

Ответ: Похоже, есть баги в либе Lib_jsr75i
 
Многое зависит от того, какой телефон, у разных трубок путь задается по разному. Также, нектороые телефоны не дают возможности записывать файлы в корень диска.
Поставь на телефон MiniCommander, и посмотри, как там выводятся пути и может ли он создавать файлы в нужном месте.

Трава 07.08.2009 16:06

Ответ: Похоже, есть баги в либе Lib_jsr75i
 
Файлы создаються. И файлы и папки. :) Пасиб. Терь разобрался. Они на K800i так записываються - /e:/file.txt к примеру. Т. е. сначала слэш надо ставить и двоеточие после диска.

GanGSISoft 25.10.2009 17:25

Ответ: Похоже, есть баги в либе Lib_jsr75i
 
Чегото у меня вылетает при компиляции с либой jsr75i?(Версия 2.0.2)

Roman_V 10.03.2010 12:41

Ответ: Похоже, есть баги в либе Lib_jsr75i
 
Вот у меня не работает skip и reset. Причем первыый вызов skip отрабатывает, а следующие не отрабатывают. Reset вообще не пашет. Не на эмуле не в телефоне. Нужно открыть файлище около 200 мегабайт и читать из него по разным смещениям N-ое кол-во байт в строку например. Нужна помощь.

soxie 22.01.2013 00:23

Ответ: Похоже, есть баги в либе Lib_jsr75i
 
Дражайшие форумчане! Решил я поковырять и поискать баги в jsr75i (исходники), ибо пишу одну банально полезнейшую утилитку для nokia s40. Конкретно для этого случая мне понадобилась самописная функция (объединяющая open_file, read_bytes и close_file, иными словами, одноразовое чтение из файла по смещению определённого количества байт и его закрытие), и вот на что я напоролся в процессе экспериментов (в яве разбирался по ходу):
во всех наших skip и reset действо осуществляется через try и проверку ненулёвости 'dis' (DataInputStream), который скорее всего не обнуляется в случае закрытия файла. В итоге работспособный код выглядит:
Код:

public static String read_buffer(String name, int off, int len) {
    StringBuffer s = new StringBuffer();
    try {
        fc = (FileConnection) Connector.open("file://"+name);
        byte[] d = new byte[len];
//        if(dis==null)
            dis = fc.openDataInputStream();
        dis.read(d, off, len);
        for(int i=0;i<len;i++){
            byte b= d[i];
            s.append((char)b);
        }
//        if(dis!=null)
        dis.close();
        fc.close();
    } catch(Exception e) {return "";}
  return s.toString();
}

Как-то так... Быть может, суть где-то рядом, и оно поможет в доработке либы.

DeaDCore 06.03.2013 19:46

Ответ: Похоже, есть баги в либе Lib_jsr75i
 
Вложений: 1
Исправил баг из за которого сохранение или загрузка файла работала только один раз. Проверил на SE k530i, всё работает. :cool:


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

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