ok udało się to ogarnąć.
String read_contact_campare(String file_name,String callerid_number){
String file = ("/"+ (String)file_name+".txt");
// int heap = ESP.getFreeHeap();
// Serial.print("memory enable przed ");Serial.println(heap);
// Serial.print("file name = ");Serial.println(file);
File myfile = SPIFFS.open(file, "r");
if (!myfile) {
Serial.println("file open failed");
}
else
{
Serial.println("file campare ok!");
Serial.println("reading data..searching contact..");
while (myfile.available()){
String campare =myfile.readString(); // czytam plik
int numer_start = campare.indexOf(callerid_number); //pozycja numer start
// Serial.print("contact start on "); Serial.println(numer_start);
int nazwa_start = campare.indexOf('>',numer_start); //pozycja nazwa start
int nazwa_koniec = campare.indexOf('<',numer_start); //pozycja nazwa stop
int numer_stop = campare.indexOf('>',numer_start); //pozycja numer stop
String number_phonebook = campare.substring(numer_start,numer_stop); // numer od znaku > do <
int number_phonebook_leng = (number_phonebook.length()-1); //dlugosc numeru w ksiazce -1
int callerid_number_leng = callerid_number.length(); //dlugosc przychodzacego numeru
if ( (nazwa_start != -1) && (nazwa_koniec != -1) && (callerid_number_leng == number_phonebook_leng)){ //jesli znajdzie miejsce w ksiazce oraz dlugosc jest taka sama
callerid_name = campare.substring(nazwa_start+1,nazwa_koniec); // nazwa od znaku > do <
Serial.println("phone_name finded");
}
else
{
Serial.println("phone_name not finded");
callerid_name = callerid_number;
}
campare="";
file="";
myfile.close();
}
}
return (callerid_name);
Poprawiłem kilka rzeczy, teraz działa od strzała.
String read_contact_campare(String file_name,String callerid_number){
String file = ("/"+ (String)file_name+".txt");
// int heap = ESP.getFreeHeap();
// Serial.print("memory enable przed ");Serial.println(heap);
// Serial.print("file name = ");Serial.println(file);
File myfile = SPIFFS.open(file, "r");
if (!myfile) {
Serial.println("file open failed");
}
else
{
Serial.println("file campare ok!");
Serial.println("reading data..searching contact..");
while (myfile.available()){
String campare =myfile.readString(); // czytam plik
int numer_start = campare.indexOf(callerid_number); //pozycja numer start
// Serial.print("contact start on "); Serial.println(numer_start);
int nazwa_start = campare.indexOf('>',numer_start); //pozycja nazwa start
int nazwa_koniec = campare.indexOf('<',numer_start); //pozycja nazwa stop
int numer_stop = campare.indexOf('>',numer_start); //pozycja numer stop
String number_phonebook = campare.substring(numer_start,numer_stop); // numer od znaku > do <
int number_phonebook_leng = (number_phonebook.length()-1); //dlugosc numeru w ksiazce -1
int callerid_number_leng = callerid_number.length(); //dlugosc przychodzacego numeru
if ( (nazwa_start != -1) && (nazwa_koniec != -1) && (callerid_number_leng == number_phonebook_leng)){ //jesli znajdzie miejsce w ksiazce oraz dlugosc jest taka sama
callerid_name = campare.substring(nazwa_start+1,nazwa_koniec); // nazwa od znaku > do <
Serial.println("phone_name finded");
}
else
{
Serial.println("phone_name not finded");
callerid_name = callerid_number;
}
campare="";
file="";
myfile.close();
}
}
return (callerid_name);
Poprawiłem kilka rzeczy, teraz działa od strzała.