Pages: [1]   Go Down
Author Topic: Overflow di String  (Read 353 times)
0 Members and 1 Guest are viewing this topic.
Naples (IT)
Offline Offline
God Member
*****
Karma: 6
Posts: 714
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve

Sto realizzando un piccolo programmino che mi legga la risposta di una GET/POST
Vorrei utilizzare l'oggetto String per rendere il parsing un pò più facile e gestibile (grazie ai suoi metodi) rispetto all'array di char.

Ho scritto questa funzioncina chiamata in loop() che funziona solo al primo ciclo.
Dal secondo ciclo in poi credo che l'oggetto string vada in overflow perchè non mi stampa più nulla.
Ho come l'impressione che ogni volta che chiamo parse() mi genera un nuovo oggetto String senza cancellare l'oggetto precedente.

Come devo gestire la cosa? Puntatori? smiley

Code:
void parse()

  Serial.println("Parsing");
  String meteo;
  if (client.find("ct"))
  {
    Serial.println("Meteo trovato!");   
    //meteo.replace(meteo,client.readString());
    meteo=client.readString();
    Serial.println("Avviso: ");
    Serial.println(meteo);
  }
  else
  {   
    Serial.println("Failed parsing...");
  }
}
Logged

Arduino, MODs e DIY: blackstufflabs.com

Naples (IT)
Offline Offline
God Member
*****
Karma: 6
Posts: 714
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

stranamente adesso funziona... chissà cosa avrò fatto...


eventualmente... come posso estrapolare da un oggetto stringa una sottostringa che inizia con una sottostringa1 e finisce con la sottostringa2?

Esempio:
"ciao mamma bella"

voglio "mamma" sapendo che inizia con "ciao" e finisce "bella"

non trovo il metodo adatto... consigli?
Logged

Arduino, MODs e DIY: blackstufflabs.com

Naples (IT)
Offline Offline
God Member
*****
Karma: 6
Posts: 714
Andrea E.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

se potessi usare il metodo find della classe stream.... sulla mia stringa sarei a cavallo...
Logged

Arduino, MODs e DIY: blackstufflabs.com

Offline Offline
Jr. Member
**
Karma: 2
Posts: 98
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho dato un occhiata veloce ai metodi string sulla reference e non vedo niente che ti può essere utile...
potresti fare però una altra cosa e cioè controllare char per char con 2 cicli e se trovi tutti  i char della prima stringa nella seconda hai fatto.
oppure partendo dal primo carattere crei una substring di n char e li compari alla tua parola, se la trovi esci dal ciclo se no crei un'altra substring partendo dal secondo char e cosi via finche non finisci la seconda stringa.

so che è un pò complicato ma sono i primi due metodi che mi sono venuti in mente, però mi sembra strano che non ci sia un metodo...è un pò che non programmo e non ricordo bene tutti i metodi
Logged

Selvazzano Dentro - Padova
Online Online
Edison Member
*
Karma: 37
Posts: 1308
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

int I;
String X;
String Y;

X = "Ciao, Mamma bella!";

if (X.startsWith("Ciao") && X.endsWith("bella")) {
  I = X.indexOf("Mamma");
  if (I > 0)  {
    Y = X.substring(I, I + 5);
  }

}
Logged

Pages: [1]   Go Up
Jump to: