Чтение SD и запись в EEPROM

Mr.Mouse
Offline
Зарегистрирован: 21.01.2022

Необходимо прочитать файл с SD и записать содержимое в память для дальнейшего использования.

Содержимое файла:

1000;1-100,2-200,3-300,4-400,5-500,6-600,7-700,8-800,9-900,0-1000,1-100,2-200,3-300,4-400,5-500
2000;3-300,4-400,5-500
3000;90-500,0-20,90-500,0-20,90-500,0-20,90-500,0-20,90-500,0-20,90-500,0-20
100;0-100,5-500,0-800,9-1000,10-500

Код:

    // читаем данные с флэшки
    if (SD.begin(sdPin)) {
      int h = 0;
      char array[] = {};
      File fileConfig;
      fileConfig = SD.open("config.txt"); // читаем файл настроек
      if (fileConfig) {
        while (fileConfig.available()) {
          array[h] = fileConfig.read();
          h++;
        }
        array[h] = '\0';
        fileConfig.close();
        Serial.println(array);
        EEPROM.put(0, array); // записываем настройки в память
        char array2[10];
        EEPROM.get(0, array2);
        Serial.println(array2);
      }
    }

Из памяти не читает. Подскажите, пожалуйста, что делаю не так?

ddr2
Offline
Зарегистрирован: 27.12.2020

char array[] = {};

08     while (fileConfig.available()) {
09       array[h] = fileConfig.read();
10       h++;
11     }
12     array[h] = '\0';

Видимо с этим, вы создали массив какого размера? 

Mr.Mouse
Offline
Зарегистрирован: 21.01.2022

Разобрался, спасибо.

А как понять что в переменную что-то записалось?

Задаю char array[130]; sizeof(array); выдает 130, но по факту это столько выделено места, а оно может быть пустым.

vanila
Offline
Зарегистрирован: 25.08.2015

strlen (array);

попробуй

Mr.Mouse
Offline
Зарегистрирован: 21.01.2022

Благодарю!