const char *WhMois0 = R"====(Date,Données Maison / Soutirée,Données Maison / Injectée,,,Heure Déci. ,Message
20260801,7092,417,,,23.98,20260801
20260802,5727,509,,,23.98,20260802
20260803,6014,319,,,23.98,20260803
20260804,5996,302,,,23.98,20260804
20260805,4825,436,,,23.98,20260805
20260806,5021,612,,,23.98,20260806
20260807,5602,307,,,23.98,20260807
20260808,6788,557,,,23.98,20260808
20260809,2992,48,,,23.98,20260809
20260810,5818,337,,,23.98,20260810
20260811,6145,355,,,23.98,20260811
20260812,5068,297,,,23.98,20260812
20260813,7284,296,,,23.98,20260813
20260814,4958,282,,,23.98,20260814
20260815,5958,516,,,23.25,Reset Demandé par le Web
20260815,5961,0,,,23.26,Update OK
20260815,5986,0,,,23.48,Reset Demandé par le Web
20260815,6052,0,,,23.61,Reset Demandé par le Web
20260815,6096,0,,,23.98,20260815
20260816,2616,59,,,11.80,Reset Demandé par le Web
20260816,2646,110,,,12.23,Reset Demandé par le Web
20260816,7511,324,,,23.98,20260816
20260817,4621,348,,,23.56,Reset Demandé par le Web
20260817,4635,0,,,23.63,Reset Demandé par le Web
20260817,6,0,,,23.65,Update OK
20260817,152,0,,,23.98,20260817
20260818,6877,80,,,23.98,20260818
20260819,6642,38,,,23.98,20260819
20260820,4934,682,,,23.98,20260820
20260821,6639,66,,,23.98,20260821
)====";
const char *WhMois = R"====(Date,Données Maison / Soutirée,Données Maison / Injectée,,,Heure Déci. ,Message
20260601,4428,1078,,,23.98,20260601
20260602,0,0,,,9.38,Puissances non reçues =\u003E Reset
20260602,0,0,,,9.45,Puissances non reçues =\u003E Reset
20260602,0,0,,,9.51,Puissances non reçues =\u003E Reset
20260602,0,0,,,9.56,Puissances non reçues =\u003E Reset
20260602,0,0,,,9.61,Puissances non reçues =\u003E Reset
20260602,0,0,,,9.66,Puissances non reçues =\u003E Reset
20260602,1171,2821,,,23.98,20260602
20260603,2242,8973,,,23.98,20260603
20260604,2290,566,,,23.98,20260604
20260605,1880,7785,,,23.98,20260605
20260606,534,0,,,4.80,Puissances non reçues =\u003E Reset
20260606,248,11160,,,15.61,Reset Demandé par le Web
20260606,579,404,,,23.98,20260606
20260607,1558,11640,,,23.98,20260607
20260608,1777,2573,,,23.98,20260608
20260609,2025,4072,,,23.98,20260609
20260610,1826,8366,,,23.98,20260610
20260611,1762,12215,,,23.98,20260611
20260612,1648,17200,,,23.98,20260612
20260613,1522,16456,,,23.98,20260613
20260614,1497,16901,,,23.98,20260614
20260615,1668,15391,,,23.98,20260615
20260616,1944,6378,,,23.30,Puissances non reçues =\u003E Reset
20260616,84,0,,,23.98,20260616
20260617,1408,12971,,,21.70,Puissances non reçues =\u003E Reset
20260617,0,0,,,21.76,Puissances non reçues =\u003E Reset
20260617,0,0,,,21.81,Puissances non reçues =\u003E Reset
20260617,0,0,,,21.86,Puissances non reçues =\u003E Reset
20260617,0,0,,,21.93,Puissances non reçues =\u003E Reset
20260617,0,0,,,22.01,Puissances non reçues =\u003E Reset
20260617,0,0,,,22.08,Puissances non reçues =\u003E Reset
20260617,297,0,,,23.98,20260617
20260618,951,8059,,,14.00,Puissances non reçues =\u003E Reset
20260618,0,382,,,14.21,Puissances non reçues =\u003E Reset
20260618,0,412,,,14.45,Puissances non reçues =\u003E Reset
20260618,0,296,,,14.63,Puissances non reçues =\u003E Reset
20260618,0,403,,,14.88,Puissances non reçues =\u003E Reset
20260618,0,294,,,15.06,Puissances non reçues =\u003E Reset
20260618,24,3620,,,17.95,Puissances non reçues =\u003E Reset
20260618,624,389,,,23.98,20260618
20260619,922,2685,,,10.83,Puissances non reçues =\u003E Reset
20260619,223,12532,,,21.25,Puissances non reçues =\u003E Reset
20260619,514,0,,,23.98,20260619
20260620,1523,9788,,,16.51,Puissances non reçues =\u003E Reset
20260620,0,1099,,,17.56,Puissances non reçues =\u003E Reset
20260620,714,929,,,23.98,20260620
20260621,997,551,,,8.76,Puissances non reçues =\u003E Reset
20260621,14,23,,,9.15,Puissances non reçues =\u003E Reset
20260621,383,13781,,,21.81,Puissances non reçues =\u003E Reset
20260621,389,0,,,23.98,20260621
20260622,1899,13749,,,23.98,20260622
20260623,2013,13950,,,23.98,20260623
20260624,1129,8746,,,14.23,Puissances non reçues =\u003E Reset
20260624,667,4738,,,23.98,20260624
20260625,1809,11187,,,23.98,20260625
20260626,1062,11546,,,16.68,Puissances non reçues =\u003E Reset
20260626,513,1473,,,22.15,Puissances non reçues =\u003E Reset
20260626,324,0,,,23.98,20260626
20260627,1231,11331,,,20.83,Puissances non reçues =\u003E Reset
20260627,746,0,,,23.98,20260627
20260628,995,2989,,,11.10,Puissances non reçues =\u003E Reset
20260628,1016,6439,,,23.98,20260628
20260629,2462,8350,,,17.31,Puissances non reçues =\u003E Reset
20260629,651,1168,,,23.98,20260629
20260630,1182,14135,,,21.06,Puissances non reçues =\u003E Reset
20260630,518,0,,,23.98,20260630
20260701,1932,15313,,,23.98,20260701
20260702,601,0,,,4.58,Puissances non reçues =\u003E Reset
20260702,1116,16275,,,23.98,20260702
20260703,2325,10008,,,23.98,20260703
20260704,1620,15537,,,23.38,Puissances non reçues =\u003E Reset
20260704,81,0,,,23.98,20260704
20260705,1822,12571,,,23.98,20260705
20260706,1774,16634,,,23.98,20260706
20260707,1306,6055,,,15.05,Puissances non reçues =\u003E Reset
20260707,738,2839,,,23.98,20260707
20260708,1784,9044,,,23.98,20260708
20260709,1695,14108,,,23.98,20260709
20260710,1780,8798,,,23.98,20260710
20260711, ,,,,23.98,20260711
20260712,1105,1242,,,10.78,Puissances non reçues =\u003E Reset
20260712,1289,2782,,,23.98,20260712
20260713,1833,2452,,,16.76,Puissances non reçues =\u003E Reset
20260713,1269,642,,,23.98,20260713
20260714,2754,981,,,23.98,20260714
20260715,4094,2407,,,23.98,20260715
20260716,1722,11069,,,23.98,20260716
20260717,1333,6888,,,23.98,20260717
20260718,1291,13861,,,23.98,20260718
20260719,1255,16391,,,23.98,20260719
20260720,1263,15314,,,23.98,20260720
20260721,1292,16245,,,23.98,20260721
20260722,2239,7180,,,23.98,20260722
20260723,1375,10685,,,17.36,Reset Demandé par le Web
20260723,0,0,,,17.48,Reset Demandé par le Web
20260723,0,0,,,17.51,Reset Demandé par le Web
20260723,0,0,,,17.58,Reset Demandé par le Web
20260723,0,0,,,17.63,Puissances non reçues =\u003E Reset
20260723,0,0,,,17.68,Puissances non reçues =\u003E Reset
20260723,0,0,,,17.70,Reset Demandé par le Web
20260723,0,0,,,17.73,Reset Demandé par le Web
20260723,27,1,,,17.78,Reset Demandé par le Web
20260723,0,0,,,17.86,Reset Demandé par le Web
20260723,0,0,,,17.88,Reset Demandé par le Web
20260723,0,0,,,18.10,Reset Demandé par le Web
20260723,0,0,,,18.13,Reset Demandé par le Web
20260723,0,0,,,18.18,Puissances non reçues =\u003E Reset
20260723,802,310,,,23.98,20260723
20260724,991,9580,,,15.41,Puissances non reçues =\u003E Reset
20260724,839,2456,,,23.98,20260724
20260725,3141,3717,,,23.98,20260725
20260726,1915,8122,,,23.98,20260726
20260727,1762,10229,,,23.98,20260727
20260728,1695,11527,,,23.98,20260728
20260729,1762,9593,,,23.98,20260729
20260730,2015,10869,,,23.98,20260730
20260731,2061,3339,,,23.98,20260731
20260801,1099,6571,,,14.48,Puissances non reçues =\u003E Reset
20260801,0,91,,,14.58,Puissances non reçues =\u003E Reset
20260801,727,5183,,,23.98,20260801
20260802,1798,11427,,,23.98,20260802
20260803,2971,5828,,,23.98,20260803
20260804,1001,255,,,8.70,Puissances non reçues =\u003E Reset
20260804,1511,8772,,,23.98,20260804
20260805,1902,10144,,,23.98,20260805
20260806,1717,11900,,,23.98,20260806
20260807,1773,14671,,,23.98,20260807
20260808,2505,10456,,,23.98,20260808
20260809,2210,9894,,,23.98,20260809
20260810,1847,11958,,,23.98,20260810
20260811,1725,11129,,,23.06,Puissances non reçues =\u003E Reset
20260811,117,0,,,23.98,20260811
20260812,1847,11340,,,23.98,20260812
20260813,2065,7034,,,23.98,20260813
20260814,1811,10955,,,23.98,20260814
20260815,2067,11201,,,23.98,20260815
20260816,2193,5765,,,23.98,20260816
20260817,2016,5272,,,23.98,20260817
20260818,1868,1950,,,12.46,Puissances non reçues =\u003E Reset
20260818,870,7629,,,23.98,20260818
20260819,456,0,,,3.63,Puissances non reçues =\u003E Reset
20260819,0,0,,,3.70,Puissances non reçues =\u003E Reset
20260819,0,0,,,3.75,Puissances non reçues =\u003E Reset
20260819,0,0,,,3.80,Puissances non reçues =\u003E Reset
20260819,0,0,,,3.85,Puissances non reçues =\u003E Reset
20260819,0,0,,,3.90,Puissances non reçues =\u003E Reset
20260819,0,0,,,3.95,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.01,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.06,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.11,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.16,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.23,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.28,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.33,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.38,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.43,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.50,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.55,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.61,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.66,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.71,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.76,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.83,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.88,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.93,Puissances non reçues =\u003E Reset
20260819,0,0,,,4.98,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.03,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.08,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.13,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.18,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.23,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.28,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.33,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.38,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.45,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.50,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.55,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.60,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.65,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.70,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.76,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.81,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.86,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.93,Puissances non reçues =\u003E Reset
20260819,0,0,,,5.98,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.03,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.08,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.13,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.18,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.23,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.28,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.33,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.38,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.43,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.48,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.53,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.58,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.63,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.70,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.75,Puissances non reçues =\u003E Reset
20260819,0,0,,,6.80,Puissances non reçues =\u003E Reset
20260819,155,1173,,,10.85,Update OK
20260819,0,70,,,10.90,Reset Demandé par le Web
20260819,4777,9381,,,23.98,20260819
20260820,1058,1,,,7.88,Puissances non reçues =\u003E Reset
20260820,0,0,,,7.93,Puissances non reçues =\u003E Reset
20260820,2047,7095,,,23.98,20260820
20260821,1381,195,,,10.28,Puissances non reçues =\u003E Reset
20260821,1130,7288,,,23.98,20260821
20260822,7349,11425,,,23.98,20260822
20260823,3076,12444,,,23.98,20260823
)====";
void test0() {
String file = WhMois0;
String line;
line.reserve(64);
String JsonMois = "";
JsonMois.reserve(2000); // reservons 2000, le mode dynamique des String fera le reste si ça n'est pas suffisant
int idx = 0;
while (idx < file.length()) {
int p = file.indexOf("\n", idx); // locate end of line
if (p >= 0) line = file.substring(idx, p); // on a une fin de ligne
else if (p == -1 && idx < file.length()) line = file.substring(idx, file.length()); // on a pas de fin de ligne mais il y a des char sur la dernier ligne
else break; // Sort du while
idx = p + 1; // normalement début de la ligne suivante
if (line.length() > 10 && line.indexOf("Date,") == -1 && line.substring(0, 8) == line.substring(line.length() - 8)) {
Serial.println(line);
}
}
}
void test1() {
String file = WhMois;
String line;
line.reserve(64);
String JsonMois = "";
JsonMois.reserve(1800); // reservons 2000, le mode dynamique des String fera le reste si ça n'est pas suffisant
int idx = 0;
while (idx < file.length()) {
int p = file.indexOf("\n", idx); // locate end of line
if (p >= 0) line = file.substring(idx, p); // on a une fin de ligne
else if (p == -1 && idx < file.length()) line = file.substring(idx, file.length()); // on a pas de fin de ligne mais il y a des char sur la dernier ligne
if (line.length() <= 10) continue;
if (line.startsWith("Date,")) continue; // Ignore entête
if (line.substring(0, 8) != line.substring(line.length() - 8)) continue; // ne garde que les bilans fin de journée
idx = p + 1; // normalement début de la ligne suivante
if (line.length() > 10 && line.indexOf("Date,") == -1 && line.substring(0, 8) == line.substring(line.length() - 8)) {
Serial.println(line);
}
}
}
void test() {
bool first = true;
String file = WhMois;
String line;
line.reserve(64);
String out = "";
out.reserve(1800); // reservons 2000, le mode dynamique des String fera le reste si ça n'est pas suffisant
int idx = 0;
while (idx < file.length()) {
int p = file.indexOf("\n", idx); // locate end of line
if (p >= 0) line = file.substring(idx, p); // on a une fin de ligne
else if (p == -1 && idx < file.length()) line = file.substring(idx, file.length()); // on a pas de fin de ligne mais il y a des char sur la dernier ligne
idx = p + 1; // normalement début de la ligne suivante
if (line.length() <= 10) continue;
if (line.startsWith("Date,")) continue; // Ignore entête
if (line.substring(0, 8) != line.substring(line.length() - 8)) continue; // ne garde que les bilans fin de journée
if (line.length() > 10 && line.indexOf("Date,") == -1 && line.substring(0, 8) == line.substring(line.length() - 8)) {
if (!first) out += ',';
else first = false;
out += '"';
out += line;
out += '"';
if (out.length() > 1400) { // évite de faire grossir le buffer
Serial.print(out);
out = "";
}
}
}
if (out.length()) Serial.print(out);
Serial.println();
}
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
Serial.println("Hello, ESP32!");
test();
Serial.println("Fini");
}
void loop() {
// put your main code here, to run repeatedly:
delay(10); // this speeds up the simulation
}