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

 
 
> Приемы работы с FATFS.
Jenya7
сообщение Dec 6 2016, 07:23
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



Я работаю с FATFS. Пишу/читаю файлы на SD. Как работать с одним файлом понятно.
Но если есть список файлов file#1.xml, file#2.xml,….file#100.xml. Как мне их перебрать эффективно?
Есть функции f_findfirst и f_findnext. Но что для них first а что next? Скажем если я задам маску "file#*.xml" - first будет первый по порядковому номеру?
Я хотел посмотреть если есть дырка, скажем file#1.xml, file#2.xml, file#4.xml - значит file#3 отсутствует то его и создать.
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Jenya7
сообщение Dec 20 2016, 07:11
Сообщение #2


Профессионал
*****

Группа: Участник
Сообщений: 1 778
Регистрация: 29-03-12
Пользователь №: 71 075



а вот если мне в файле нужно найти какое нибудь слово. я должен скопировать файл в буффер в RAM и там искать? другого способа нет?
Go to the top of the page
 
+Quote Post
kolobochishe
сообщение Mar 1 2017, 15:12
Сообщение #3


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



Цитата(Jenya7 @ Dec 20 2016, 12:11) *
а вот если мне в файле нужно найти какое нибудь слово. я должен скопировать файл в буффер в RAM и там искать? другого способа нет?


Ну да. С флешки лучше всего подойдет чтение блоками по 512 байт (если объем памяти под буфер критичен). Т.к. физически минимальная единица чтения/записи - 512 байт. Далее поиск нужного слова в буфере (надо, правда учитывать, что слово может быть "разорвано" между блоками). Адрес следующего блока всегда должен быть кратен 512 от начала файла. Тогда можно быть точно уверенным, что не читалось два 512-байтных блока.

А свободное место считается в FAT32 по структуре FS_Info. Как в остальных ФС не знаю. Но есть, правда уточнение, что не все устройства поддерживают обновление FS_Info и если чтение/запись еще будет на другом устройстве, то информация в FS_Info может и не соответствовать действительности. В FatFS сам проверял - FS_Info обновляется и в каждой копии FAT_TABLE. В ОС Windows тоже.

Если надо точно быть уверенным в случае использования флешки "на стороне" - нужно пройтись по всем DIR_ENTRY в файловой таблице.

Сообщение отредактировал kolobochishe - Mar 1 2017, 15:16
Go to the top of the page
 
+Quote Post
mantech
сообщение Mar 6 2017, 18:30
Сообщение #4


Гуру
******

Группа: Участник
Сообщений: 2 219
Регистрация: 16-08-12
Из: Киров
Пользователь №: 73 143



Цитата(kolobochishe @ Mar 1 2017, 18:12) *
С флешки лучше всего подойдет чтение блоками по 512 байт (если объем памяти под буфер критичен). Т.к. физически минимальная единица чтения/записи - 512 байт.


Если хотите читать неторопясь, особенно с SD карт, то 512 байт, а если "по уму", то по 4Кбайта rolleyes.gif
Go to the top of the page
 
+Quote Post
kolobochishe
сообщение Mar 7 2017, 19:13
Сообщение #5


Местный
***

Группа: Участник
Сообщений: 240
Регистрация: 14-04-10
Из: Россия, г.Челябинск
Пользователь №: 56 634



Цитата(mantech @ Mar 6 2017, 23:30) *
Если хотите читать неторопясь, особенно с SD карт, то 512 байт, а если "по уму", то по 4Кбайта rolleyes.gif

А почему именно 4к?
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- Jenya7   Приемы работы с FATFS.   Dec 6 2016, 07:23
- - XVR   f_findfirst начинает процесс перебора файлов в кат...   Dec 6 2016, 08:01
|- - Jenya7   Цитата(XVR @ Dec 6 2016, 13:01) f_findfir...   Dec 6 2016, 09:04
- - XVR   Цитатая понял. то есть нужно считать все имена фай...   Dec 6 2016, 11:15
|- - Jenya7   Цитата(XVR @ Dec 6 2016, 16:15) Да Тоже в...   Dec 6 2016, 11:36
|- - jcxz   Цитата(XVR @ Dec 6 2016, 14:15) Можно счи...   Dec 8 2016, 09:25
|- - Jenya7   Цитата(jcxz @ Dec 8 2016, 15:25) Вообще-т...   Dec 8 2016, 12:34
- - Ruslan1   Цитата(Jenya7 @ Dec 6 2016, 10:23) Я рабо...   Dec 8 2016, 16:38
|- - Jenya7   Алгоритм такой. Пользователь создает новую задачу....   Dec 9 2016, 09:08
- - Jenya7   Пролема однако. При перезаписи файла кусок старых ...   Dec 12 2016, 07:02
|- - Сергей Борщ   QUOTE (Jenya7 @ Dec 12 2016, 10:02) А как...   Dec 12 2016, 07:16
|- - Jenya7   Цитата(Сергей Борщ @ Dec 12 2016, 13:16) ...   Dec 12 2016, 10:35
|- - mantech   Цитата(kolobochishe @ Mar 7 2017, 22:13) ...   Mar 9 2017, 14:15
- - pokk   Подскажите как сделать поиск предыдущего, файла ? ...   Mar 24 2017, 06:25
- - kolobochishe   Цитата(pokk @ Mar 24 2017, 11:25) Подскаж...   Mar 24 2017, 20:56


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

 


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


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