после долгих гуглений наконец разобрался как записывать csv файл по дате на sd карту так подготавливаю файл Код (C++): year = String(now.year()%2000, DEC); if(now.month() < 10) month = "0" + String(now.month(), DEC); else month = String(now.month(), DEC); if(now.day() < 10) day = "0" + String(now.day(), DEC); else day = String(now.day(), DEC); if(now.hour() < 10) hour = "0" + String(now.hour(), DEC); else hour = String(now.hour(), DEC); if(now.minute() < 10) minute = "0" + String(now.minute(), DEC); else minute = String(now.minute(), DEC); date = day + "." + month + "." + year; time = hour + ":" + minute; String stroke = day + month + year + ".csv"; char charVar[12]; stroke.toCharArray(charVar, 12); char new_data[12]; strcpy(new_data,charVar); szNewFileName = new_data; так записываю Код (C++): myFile = SD.open(szNewFileName, FILE_WRITE); if (myFile) { myFile.print(date); myFile.print(F(",")); myFile.print(time); myFile.print(F(",")); myFile.print(day_game); myFile.print(F(",")); myFile.print(val1); myFile.print(F(",")); myFile.println(val2); myFile.close(); } так читаю Код (C++): myFile = SD.open(szNewFileName, FILE_READ); if (myFile) { while (myFile.available()) { Day = myFile.read(); Month = myFile.read(); Year = myFile.read(); Hour = myFile.read(); Minute = myFile.read(); val1 = myFile.read(); val2 = myFile.read(); } myFile.close(); } в файле записано 19 12 15 20 33 2 4 в сериале 44 48 13 10 -1 -1 -1 в чём косяки у меня ?
Во-первых, myFile.read(); читает один символ из файла. Чтобы прочитать целое число до разделителя, следует использовать myFile.parseInt(); Во-вторых, получается, что из файла читается 4 символа (запятая, ноль, возврат каретки, перевод строки), после чего достигается конец файла и еще три считывания возвращают -1. Вопросы. Точно ли читается тот самый файл, в котором 19 12 15 20 33 2 4? Точно ли в нем 19 12 15 20 33 2 4?
А почему не так? Код (C++): year = String(now.year()%2000, DEC); month = now.month() < 10 ? "0" : "" + String(now.month(), DEC); day = now.day() < 10 ? "0" : "" + String(now.day(), DEC); hour = now.hour() < 10 ? "0" : "" + String(now.hour(), DEC); minute = now.minute() < 10 ? : "0" + String(now.minute(), DEC); date = day + "." + month + "." + year; time = hour + ":" + minute;[/code