• Уважаемые посетители сайта esp8266.ru!
    Мы отказались от размещения рекламы на страницах форума для большего комфорта пользователей.
    Вы можете оказать посильную поддержку администрации форума. Данные средства пойдут на оплату услуг облачных провайдеров для сайта esp8266.ru
  • Система автоматизации с открытым исходным кодом на базе 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() );
 
Сверху Снизу