Кто любит RISC в жизни, заходим, не стесняемся.
Ответить

Динамическое имя файла FATFS (CubeMX)

Пн авг 22, 2022 22:34:07

Друзья, здравствуйте.
Нужно чтобы имя создаваемого FATFS файла было не статическим, а динамическим, допустим "день_месяц-год.txt".
В статике всё работает, имя файла я задаю массивом char fName[] = "sens_table.txt\0";

Определяется он тут: fR = f_open(&file, fName, FA_OPEN_ALWAYS|FA_WRITE|FA_READ);

Пробовал делать так: sprintf (fName, "%d-%d-%d-%d.txt ", sDate.Date, sDate.Month, sDate.Year, sTime.Seconds);

FATFS ругается и не создаёт файл.

Пробовал форматировать другой архив и копировать его в нужный: memcpy (fName, wtext, sizeof(fName)); - не работает, та же ошибка.

Подскажите, как правильно это сделать?

Re: Динамическое имя файла FATFS (CubeMX)

Пн авг 22, 2022 22:56:11

Дык, это ... Длину массива то не указали :roll:

Добавлено after 52 seconds:
DataLife писал(а):та же ошибка
Покажите хоть её нам.

Re: Динамическое имя файла FATFS (CubeMX)

Пн авг 22, 2022 23:03:48

динамическое имя может укладываться в рамки статичного массива, если меняются лишь символы, а не их количество, и тогда это одна задача.
а может не укладываться, и тогда это другая задача, которая может звучать как "динамические массивы в С++"

Re: Динамическое имя файла FATFS (CubeMX)

Пн авг 22, 2022 23:09:35

Чисто на всякий случай: в приведенном коде в форматной строке при вызове snprintf после "txt" у вас пробел.

Re: Динамическое имя файла FATFS (CubeMX)

Чт авг 25, 2022 21:23:31

Здравствуйте, друзья. не знаю точно как, но всё получилось.
Заново всё написал, хотел посмотреть ошибку, что ответить Аlex'у, но всё успешно записывается.
На счёт "пробела" в конце - то был эксперимент, кстати в рабочем варианте нет пробела.
Размер массива указал 35 на всякий ...
Работает!
Ответить