Чтение отдельных строк с помощью FatFS на STM32

есть ли чистый способ чтения отдельных строк с помощью библиотеки FatFS на STM32?

Мне нужна функция, которая заполняет буфер определенной строкой / строкой из текстового файла на SD-карте.

На данный момент я читаю файл с f_read, но никогда не знаю, какой длины одна строка:

f_read(&file.file_p, buffer, len, &bw);

Спасибо


person vt1111    schedule 06.05.2020    source источник


Ответы (1)


Есть функция f_gets, которая позволяет вам читать файл построчно, но имейте в виду, что и в этом случае вам понадобится буфер, достаточно большой для хранения максимально возможной строки.

Ссылка на документацию: http://elm-chan.org/fsw/ff/doc/gets.html

person Jacek Ślimok    schedule 06.05.2020
comment
А как выделить строчку с f_gets? Например, когда я хочу прочитать строку 54 - person vt1111; 06.05.2020
comment
Вы этого не сделаете. Если вам нужна такая функция, вы читаете файл построчно и считаете. Я не знаю ни одного файлового API (даже на ПК), который позволил бы вам это сделать. Это потребует сохранения смещений в файле, где начинается каждая строка, чтобы вы могли напрямую переходить к ним. - person Jacek Ślimok; 06.05.2020
comment
@ JacekŚlimok, да, это C (или C ++), для этого вам понадобится много ручной работы. Однако просто реализуйте его и вставьте в функцию, и теперь вы можете легко это сделать. - person Tarick Welling; 07.05.2020