Ответ: большие тормоза при работе с FlashCard
Господа, а не потестите ли эту прогу на телефонах? В эмуляторе то работает, а вот в телефоне у меня зависает после открытия. ждал 10 минут, так ничего и не считалось. Если ставлю
skip(20);
str:=read_bytes(0,10);
то считывает. Вот и не понятно что не работает. Файл надо около 120-200 мегабайт чтобы был. Не важно что считается, главное чтобы все прошло нормально. И сама функция read_bytes(int off, int len) по сути должна считывать len байт начиная с off как я понял, но если я ставлю хотя бы 1 первым параметром, а не 0, то строка не возвращается. Поэтому я перед ней использую skip. Все бы хорошо, если бы работала на телефоне. Это родилось как идея в продолжение моего поста. Подумал что если поиск внутри одного но огромного файла будет быстрее то почему бы нет. А тут опять глюки. Потестите пожалуйста или предложите вариант чтения LEN байт по OFF смещению из файла. Спасибо!
program Files;
uses jsr75i;
var
nm,path,str: String;
o: Integer;
begin
path:='MemoryCard:/data/base.txt'; // файл размером 200 Мб. любой
o:=open_file(path);
if o=1 then DrawText('Открыто',0,0)
else DrawText('Ошибка!',0,0);
repaint;
skip(132407727); // смещение от начала файла
str:=read_bytes(0,10); // читаю 10 байт
DrawText(str,0,20);
DrawText(IntegerToString(length(str)),0,40);
o:=close_file(path);
if o=1 then DrawText('Закрыто',0,60)
else DrawText('Ошибка!',0,60);
repaint;
end.
|