Чтение произвольной строки из ресурса
Вот такая штука.
Есть прога, которая читает текстовую информацию из ресурса. Несколько сотен строк. Это у меня сделано так - создаю строчный массив, потом через Lib_res загружаю в него данные построчно, потом выдаю на экран тот или иной элемент данного массива. Но есть существенные минусы: - мидлет долго запускается - массив жрёт память, а пользы от него мало. В процессе работы мидлета пользователю выдаются не все записи, а только лишь некоторые. Соответственно, КПД такой схемы довольно низкий. Я тут подумал. А можно ли читать из текстового ресурса произвольную строчку? Я бы тогда просто открыл ресурс при старте мидлета, а потом просто запрашивал нужную строчку. |
Ответ: Чтение произвольной строки из ресурса
Нельзя. Как же мидлет заранее узнает где начинается новая строка? Вот если у тебя заранее известен индекс каждой строчки в файле или если длинна всех строк одинакова, тогда наверно можно прочитать ресурс с определённого байта (не сначала, как обычно, а с любого места файла).
|
Ответ: Чтение произвольной строки из ресурса
Skythrone, а кто тебе мешает организовать свою схему считывания ресурсного файла на чистом МП? Использование библиотек не всегда лучший способ.
В некоторых случаях лучше использовать стандартные средства МП. |
Ответ: Чтение произвольной строки из ресурса
Кстати, так можно или нет считать ресурс не сначала, а с определённого места? Если можно, то как?
|
Ответ: Чтение произвольной строки из ресурса
Вложений: 1
Пример чтения нужной строки из Text.txt
|
Цитата:
А как мне прочитать данные, начиная с нужного оффсета? Какой функцией? Цитата:
Во-вторых, я не нашёл встроенных средств в MP для чтения данных из ресурса, начиная с заданного места (оффсет). Цитата:
У меня всё упирается в скорость работы на телефоне. В ресурсном txt-файле более 1000 строк. Каждая строка - определённое сообщение интерфейса. Подобный перебор всех строк последовательно будеть занимать по 5-10 секунд на SE K-700, что не есть good. :( |
Ответ: Чтение произвольной строки из ресурса
Цитата:
Цитата:
|
Ответ: Чтение произвольной строки из ресурса
О_о Рано я спасибку поставил =) Я думал, что там как раз считывается с определённого места, не посмотрел сразу.
|
Ответ: Чтение произвольной строки из ресурса
Skythrone, мой тебе совет: раздели все свои интерфейсные команды на группы, а каждую группу храни в отдельном файле. :)
|
Ответ: Чтение произвольной строки из ресурса
Цитата:
|
Ответ: Чтение произвольной строки из ресурса
Господа гуру, не могли бы вы реализовать возможность чтения из ресурса с произвольной позиции (оффсета) и заданной длины?
2Rosetau: старую версию либы я выложу завтра, сейчас я в командировке |
Ответ: Чтение произвольной строки из ресурса
Вложений: 1
Доброго времени суток форумчанам.
Как тут не однократно говорили - стандартными средствами - тормозит, а библиотеку сделать не выйдет. сейчас использую вот такую функцию для чтения нужной строки: Код:
function textread(a:integer; data:string): string; Вот вы говорите что нельзя такую либу написать. Но меня тогда гложет любопытство, каким образом работают java книги? (я буду ставить в пример Tequila cat book reader) Мощная читалка и держит файлы ЛЮБОГО размера (свыше 6000 строк точно), использует графические шрифты, моментально грузит файл (до 5ти сек, а то и меньше на SE500) и никаких тормозов и подгрузок. абсолютно никаких. во время использования нет. Я взял скомпилированный мидлет и попытался распаковать самый "выпяченный" класс (BookReaderMidlet.class) - результат довольно интересен (см вложение). Если даже чтение определённых строк не реализуемо, то "быстрое" чтение реализуемо вполне. Вопрос как. Прошу поделиться вашими соображениями на этот счёт и надеюсь на помощь. :) ADD. Похоже используется вот этот метод, но на первый взгляд мало чем отличается. тот же перебор. Код:
import java.io.*; |
Ответ: Чтение произвольной строки из ресурса
оптимизировал всё что только смог. теперь 2 сек 50строк. на сейчас пойдёт, но вообще - не дело это...
|
Часовой пояс GMT +4, время: 01:24. |
vBulletin® Version 3.6.5.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Перевод: zCarot