Ciao a tutti, mi servirebbe un aiuto per fare una ricerca du una riga nella SD_card
P0D1,Epic,Cartone,0,98,0,S,N,1,
P0D2,Baby Boss,Cartone,0,97,0,S,N,2,
P0D3,Ralph spaccatutto,Cartone,0,58,0,S,N,3,
P0D4,I corti Pixar 1,Cartone,0,51,0,S,N,4,
Questo è il file DATADVD.txt dove sono elencati i vari film in DVD. come si può notare all'inizio c'è un codice dove identifica il film. questo codice mi arriva via seriale da un ESP8266.
Attualmenti il programma sta funzionando effettuando un controllo con if, ma facendo cosi mi comporta molte righe di codice. Ho fatto una ricerca nel Forum ma non trovo esempi che mi aiutato in merito.
void loop() {
readString = "";
char c[9];
while (Serial3.available()) {
delay(3);
Serial3.readBytes(c, 9);
Serial3.write("/n");
readString += c;
Serial.println(readString);
}
if (readString.length() > 0) {
if (readString.indexOf("P0D1") > -1) {
myFile = SD.open("P0D1.txt");
if (myFile) {
// legge il file fino a quando non c'è nient'altro :
String myString;
while (myFile.available()) {
myString += (char) myFile.read();
}
//delay(5);
tmrpcm.play("P0D1.wav");
// Ora il contenuto del file test_4.txt
// è stato salvato nella variabile String myString
if (myString.length() > 0) {
int m = 0;
int n = myString.indexOf(",");
int indice = 0;
while (n > 0) {
String token = myString.substring(n, m);
//Serial.println(token);
m = n + 1;
n = myString.indexOf(",", n + 1);
//elaboro il token:
processToken(indice, token);
indice++;
}
//applico i risultati
Stringdata();
}
// chiude il file
myFile.close();
myString = "";
} else {
// se non apre il file da errore
Serial.println("Errore apertura file dati");
}
}
questo è la parte del codice dove prende il codice per poi cercarlo.
Chi mi può fare un esempio ? grazie mille
