• Система автоматизации с открытым исходным кодом на базе esp8266/esp32 микроконтроллеров и приложения IoT Manager. Наша группа в Telegram

Помогите открыть файл SPIFFS.open через переменные

AlexTVR

Member
Добрый день! Во всех примерах, что я нашел открытие файла происходит при явном указании имени и режима, например:
File file = SPIFFS.open("/t2.txt", "a").


А как обратиться к этой функции через переменные, что-то мой компилятор ругается.
String sss = "a";
File file = SPIFFS.open("/t2.txt", sss);
no matching function for call to 'fs::FS::eek:pen(const char [8], String&)'
 

CodeNameHawk

Moderator
Команда форума
Так он вам и пишет, что тип должен быть const char *, а вы ему суете String.
 

AlexTVR

Member
Так он вам и пишет, что тип должен быть const char *, а вы ему суете String.
Мой пример внимательно посмотрите. Я первым параметром передаю "/t2.txt" - это правильно, так во всех примерах. Ошибка возникает, когда я вместо "а" передаю sss="а".
 

CodeNameHawk

Moderator
Команда форума
Последнее редактирование:

CodeNameHawk

Moderator
Команда форума
Если пытаетесь раз открыть файл на чтение, а другой раз на запись, то скорее всего так не получиться.
 

AlexTVR

Member
Если пытаетесь раз открыть файл на чтение, а другой раз на запись, то скорее всего так не получиться.
Большое спасибо, Вы правы! Все получилось, я неправильно понял "no matching function for call to 'fs::FS::eek:оpen(const char [8], String&)' ". Думал, что String& - это второй параметр.
 

CodeNameHawk

Moderator
Команда форума
Хороший инструмент - залог успеха.
Попробуйте VS Code с плагином Arduino от microsoft.

1603904781465.png
 

CodeNameHawk

Moderator
Команда форума
я неправильно понял "no matching function for call to 'fs::FS::eek:оpen(const char [8], String&)' ". Думал, что String& - это второй параметр.
Он вам пытался сказать, что не нашел функцию 'FS:: open' в которой первый параметр const char [8], а второй String&.
 

AlexTVR

Member
У Вас есть опыт использования этого инструмента? Поделитесь, пожалуйста, хотя бы обзорно.
 

CodeNameHawk

Moderator
Команда форума
Устанавливаете, запускаете - работаете.
Не намного сложнее ArduinoIDE, help там есть.
 

CodeNameHawk

Moderator
Команда форума
А преимущества?
н.п. автодоплнение, переименование, навигация по функциям.
А ситуации, когда АРДУИНО IDE код пропускает, а VS Code выдает ошибки?
Последнее время не попадается.
А подключение библиотек?
Я подключаю через ардуино иде.
 

AlexTVR

Member
Я подключаю через ардуино иде.
Получается нужна АРДУИНО ИДЕ + VS Code с плагином Arduino от microsoft. А не напряжно?
Конечно, АРДУИНО ИДЕ - очень неудобная система, но чем заменить?
Arduino IDE>vs code arduino > vs code platformio > clion>keil/ ..... народ ищет и... пока не находит.
 

yurik72

Member
Добрый день! Во всех примерах, что я нашел открытие файла происходит при явном указании имени и режима, например:
File file = SPIFFS.open("/t2.txt", "a").


А как обратиться к этой функции через переменные, что-то мой компилятор ругается.
String sss = "a";
File file = SPIFFS.open("/t2.txt", sss);
no matching function for call to 'fs::FS::eek:pen(const char [8], String&)'
File file = SPIFFS.open("/t2.txt", sss.c_char() );
 
Сверху Снизу