Processor: ESP 8266 development board
Problem trying to use LittleFS and formatting int. If the number has two digits no problem, but numbers having only one digit the alignment changes.
I’m probably doing something very silly, but if anyone can point me in the right direction I would very much appreciate it.
I have tried using int & int_least32_t & looked at a number of articles and I have probably missed the point.
#include "LittleFS.h"
bool LittleFSActive = false;
#define TESTFILE "/testfile.txt"
String My="";
int_least32_t Day=17;
int_least32_t Hour=18;
int_least32_t Min=16;
int_least32_t Sec=30;
void setup()
{
Serial.begin(115200);
delay(1000);
// Start filing subsystem
if (LittleFS.begin()) {
Serial.println("SPIFFS Active");
Serial.println();
LittleFSActive = true;
} else {
Serial.println("Unable to activate SPIFFS");
}
//*
char filename [] = "/testfile.txt";
if (LittleFS.exists(filename)) LittleFS.remove(filename); // First in this example check to see if a file already exists, if so delete it
File myDataFile = LittleFS.open(filename, "a+"); // Open a file for reading and writing (appending)
if (!myDataFile)Serial.println("file open failed"); // Check for errors
myDataFile.println(Day);
myDataFile.println(Hour);
myDataFile.println(Min);
myDataFile.println(Sec);
Serial.println(myDataFile.size()); // Display the file size (26 characters + 4-byte floating point number + 6 termination bytes (2/line) = 34 bytes)
myDataFile.close();
//*/
}
void loop()
{
if (LittleFSActive) {
if (LittleFS.exists(TESTFILE)) {
/*
File f = LittleFS.open(TESTFILE, "r");
if (!f) {
Serial.print("Unable To Open '");
Serial.print(TESTFILE);
Serial.println("' for Reading");
Serial.println();
} else {
String s;
Serial.print("Contents of file '");
Serial.print(TESTFILE);
Serial.println("'");
Serial.println();
while (f.position()<f.size()){
s=f.readStringUntil('\n');
s.trim();
Serial.println(s);
}
f.close();
}
Serial.println();
f = LittleFS.open(TESTFILE, "a");
if (!f) {
Serial.print("Unable To Open '");
Serial.print(TESTFILE);
Serial.println("' for Appending");
Serial.println();
}
else {
Serial.print("Appending line to file '");
Serial.print(TESTFILE);
Serial.println("");
Serial.println();
//f.println("This line has been appended");
Serial.println(f.size());
f.close();
}
*/
String Temp="";
File f = LittleFS.open(TESTFILE, "r");
if (!f) {
Serial.print("Unable To Open '");
Serial.print(TESTFILE);
Serial.println("' for Reading");
Serial.println();
} else {
String s;
Serial.print("Contents of file '");
Serial.print(TESTFILE);
Serial.println("' after append");
Serial.println();
while (f.position()<f.size())
{
s=f.readStringUntil('\n');
//s.trim();
Serial.println(s);
My=My+s;
}
f.close();
Temp=My[0];
Temp=Temp+My[1];
Day=Temp.toInt();
Temp=My[2];
Temp=Temp+My[3];
Hour=Temp.toInt();
Temp=My[4];
Temp=Temp+My[5];
Min=Temp.toInt();
Temp=My[6];
Temp=Temp+My[7];
Sec=Temp.toInt();
Serial.print("Day: ");Serial.println(Day);
Serial.print("Hour: ");Serial.println(Hour);
Serial.print("Min: ");Serial.println(Min);
Serial.print("Sec: ");Serial.println(Sec);
Serial.println("");
Serial.println("*");
}
} else {
Serial.print("Unable To Find ");
Serial.println(TESTFILE);
Serial.println();
}
}
while (true){
yield();
}
}