Перевод данных с SD карты в массив.

maugli-rus
Offline
Зарегистрирован: 20.07.2016

Здравствуйте помогите пожалуйста с задачей:

Есть файл на SD карте на котором буквально следующие данные:

"Админ,1485111133177.Менеджер,16620020872246."

Первое слово имя пользователя, второе номер rfid карты, кол-во людей может быть сколько угодно.

Вопрос, как мне данную строку перевести в массив login[i]=, rfid[i]=?

Считать фал с карты не проблема, а дальше я начал писать код и остановился на strtok.

char symbol = 0;
      char mass[] = {};
      int h = 0;
      //обьъявляем переменные для считывания данных
      DataFile = SD.open("data.txt");
      //открываем файл данных
      if (DataFile) {
        Serial.println("Data.txt open OK");
        //если файл открылся
        while (DataFile.available()) {
          // считываем байт входящего файла
          symbol = DataFile.read();
          // записываем символ в переменную.
          mass[h] = symbol;
          // переменную записываем в массив
          Serial.print(mass[h]);
          //выводим массив
          h++;
          delay(1);
        }
        Serial.println();
      }
      DataFile.close();
    }

 

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Может использовать файловую систему как БД

и номер делить по 6 цифр - в путь

\148511\113317\7\name

\166200\208722\46\name

в файле name уже содержится имя

и проверять существование пути - ну длина номера карты должна быть одинаковой.

Интересно на сколько будет тормозно работать. 

Зато ресурс числа пользователей достаточно велик.

 

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Не вижу в коде никакого strtok.

Зато вижу т.н. распашку памяти (выход за границы массива).

Хотите помощи приводите код полностью.