Всем доброго дня! Пытаюсь сделать это (САБЖ) с помощью стандартной библиотеки SD, но там такая конструкция SD.open("NameFile", FILE_WRITE); не понимает переменных. Пробовал подключить SdCard.h - не смог. Кто решал подобную проблему, подскажите, плиз....
А как Вы определяете и затем передаете переменную в функцию open? Код (Text): char filename[] = "filename.txt"; File f = SD.open(filename); или так? Код (Text): String filename = "filename.txt"; File f = SD.open(filename.c_str());
Пытался делать так: String year, month, day, hour, minute, second, time, date; ...... Тут получаем данные от часов и переводим их в строки таким образом: month = String(datetime.month(), DEC); ...... String STR = hour + minute + day + month + ".txt"; myFile = SD.open(STR, FILE_WRITE); Не работает.... Сегодня попробую по-Вашему!
В итоге заработало!!! Работающая конструкция выглядит так: String filename = day + hour + minute + second + ".txt"; myFile = SD.open(filename.c_str(), FILE_WRITE); Большое спасибо и лучи поддержки в сторону dnk!
Почему такая конструкция работает: String filename1 = String(day() , DEC)+ String(month() , DEC) + String(year() , DEC) + ".TXT"; File f1 = SD.open(filename1.c_str(), FILE_WRITE); А такая - НЕТ: String filename1 = String(day() , DEC) + "." + String(month() , DEC) + "." + String(year() , DEC) + ".TXT"; File f1 = SD.open(filename1.c_str(), FILE_WRITE); ???
Почему вот так работает: String filename = String(day() , DEC) + '_' + String(month() , DEC) + String(year() , DEC) + ".TXT"; ??? А вот так нет (ФАЙЛ НЕ СОЗДАЕТСЯ). String filename = String(day() , DEC) + '_' + String(month() , DEC) + '_' + String(year() , DEC) + ".TXT"; Нельзя использовать два символа подчеркивания?
Какое имя файла получается - 28_9_2017.txt ? То есть файл 28_92017.txt создается, а 28_9_2017.txt - нет? А подумать? )))
oKAY, про 8.3 понял. А кто то может способ подкинуть, как создать файл с именем более восьми символов? Тут наткнулся на библиотеку sdFat master, но так как в универе плохо учился, разобраться не смог), но она точно умеет с длинными именами работать.
Простите за вмешательство вам лучше всё-таки формат 8.3 применять без расширения имени. Увеличение имени более 11 приведёт только к одной записи в каталоге размером более 32 байт(но кратное 32)... то есть 64 и более байт только на место в каталоге. Учтите, что каталог обычно читается в буфер. А у Вас ОЗУ воз и маленькая тележка? Вот описание: fatgen103-rus.doc.zip
Попробуйте обосновать, зачем вам обязательно нужно более 8=ми символов? Любое имя файла можно сократить до формата 8.3
Жил был у бабушки серенький козлик.doc (где-то 5-6 записей по 32 байт каждый в каталоге похоже вам надо такие имена, а 041017.doc (число месяц год) непригодно.