реклама на сайте
подробности

 
 
> Работа со списком файлов директории, с минимальными затратами ОЗУ
sonycman
сообщение Jul 17 2009, 10:47
Сообщение #1


Любитель
*****

Группа: Свой
Сообщений: 1 864
Регистрация: 20-08-06
Из: Тольятти
Пользователь №: 19 695



Привет!
Думаю, как организовать функцию GUI (типа окна File Requester) со списком нужных файлов (длинные имена) текущей директории.
К примеру, для выбора .mp3 файлов для последующего воспроизведения, или любого другого требуемого типа из большого количества различных представленных - думаю, пока что должна быть возможность работать с 250-тью файлами (вместе с субдиректориями) максимум.
В окошке будет курсор, свободно перемещаемый по вертикальному списку.

Контроллер STM32 с 20к оперативы, поэтому затрачивать более 1к на нужды функции не вижу смысла.

Файловая система FatFS от Чана.

Пока остановился на таком методе:
1. Функцией f_readdir() последовательно вычитываем содержимое, индексы (порядковые номера) файлов с нужным расширением и субдиректорий сохраняем в таблице размером 250 байт. При этом остальные (не .mp3) файлы пропускаем, а индексы директорий записываем в начало таблицы, чтобы директории шли первыми.
2. Юзер, перемещая курсор GUI, фактически перемещает указатель на индекс файла в таблице.
3. Затем функцией dir_seek(индекс) устанавливаем указатель FatFS, и получаем имя файла через f_readdir().

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

Что скажете, уважаемые?

ЗЫ: вообще, конечно, хотелось бы формировать список в алфавитном порядке, но не вижу способа реализовать это на контроллере без большого кол-ва оперативки...
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- sonycman   Работа со списком файлов директории   Jul 17 2009, 10:47
- - AHTOXA   Поскольку юзер-интерфейс - штука неторопливая, то ...   Jul 17 2009, 11:31
- - defunct   Согласен с АНТОХА Цитата(sonycman @ Jul 17 2...   Jul 23 2009, 00:38
|- - sonycman   Цитата(defunct @ Jul 23 2009, 04:38) Согл...   Jul 23 2009, 08:31
|- - AHTOXA   Цитата(sonycman @ Jul 23 2009, 14:31) Тол...   Jul 23 2009, 09:07
|- - sonycman   Цитата(Dron_Gus @ Jul 23 2009, 13:03) Ну ...   Jul 23 2009, 09:17
- - baralgin   Можно отсортировать без буферов под имена вообще, ...   Jul 23 2009, 08:18
- - Dron_Gus   Вот тут есть небольшая статья со сравнениями произ...   Jul 23 2009, 08:38
|- - sonycman   Цитата(Dron_Gus @ Jul 23 2009, 12:38) Вот...   Jul 23 2009, 08:42
- - Rst7   ЦитатаА как можно сделать иначе? Способов - масса...   Jul 23 2009, 08:40
- - Rst7   ЦитатаНо не вижу другого способа, при отсутствии д...   Jul 23 2009, 08:50
|- - sonycman   Цитата(Rst7 @ Jul 23 2009, 12:50) Не согл...   Jul 23 2009, 08:55
- - Dron_Gus   Ну покурите заодно и поразрядную сортировку из при...   Jul 23 2009, 09:03
- - Rst7   ЦитатаСпасибо, буду "курить" бинарную со...   Jul 23 2009, 09:09
- - Rst7   ЦитатаНу покурите заодно и поразрядную сортировку ...   Jul 23 2009, 09:20
|- - sonycman   Цитата(Rst7 @ Jul 23 2009, 13:20) Не все....   Jul 23 2009, 09:30
|- - zltigo   Цитата(sonycman @ Jul 23 2009, 12:30) Точ...   Jul 23 2009, 16:53
- - Dron_Gus   Цитата(sonycman @ Jul 23 2009, 13:17) Хот...   Jul 23 2009, 09:24
- - Rst7   ЦитатаОбьясните, плиз, чем не годится. Слишком мн...   Jul 23 2009, 09:29
- - Rst7   ЦитатаСпасибо, возьму этот вариант за основу! ...   Jul 23 2009, 09:41
- - Dron_Gus   Цитата(Rst7 @ Jul 23 2009, 13:29) Слишком...   Jul 23 2009, 10:43
- - Rst7   ЦитатаМожно буферизировать по 5 букв из имени кажд...   Jul 23 2009, 10:58
- - Dron_Gus   Согласен. Было бы неплохо этот алгоритм "разв...   Jul 23 2009, 11:13
- - Rst7   ЦитатаБыло бы неплохо этот алгоритм "разверну...   Jul 23 2009, 16:40
- - Rst7   ЦитатаПополам, не самый эффективный вариант - дели...   Jul 23 2009, 17:05
|- - zltigo   Цитата(Rst7 @ Jul 23 2009, 20:05) Для мак...   Jul 23 2009, 17:16
- - Rst7   ЦитатаТрудностей никаких и нет, а массивы не тольк...   Jul 23 2009, 17:38
- - Dron_Gus   Цитата(Rst7 @ Jul 23 2009, 20:40) Если хо...   Jul 24 2009, 05:17
- - sonycman   В принципе, вместо имени файла можно юзать ID3 тэг...   Jul 24 2009, 08:33
- - Rst7   ЦитатаВ принципе, вместо имени файла можно юзать I...   Jul 24 2009, 08:37


Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 01:37
Рейтинг@Mail.ru


Страница сгенерированна за 0.01389 секунд с 7
ELECTRONIX ©2004-2016