Go Down

Topic: Comparer string (Read 947 times) previous topic - next topic

alb12

Bonjour,
voilà ce que j'ai essayé:

Code: [Select]

String inputString = "";         // a string to hold incoming data
boolean stringComplete = false;  // whether the string is complete

void setup() {
  // initialize serial:
  Serial.begin(9600);
  // reserve 200 bytes for the inputString:
  inputString.reserve(200);
}

void loop() {
  // print the string when a newline arrives:
  if (stringComplete) {
if (inputString == "this")
{
Serial.println(inputString);
}
    // clear the string:
    inputString = "";
    stringComplete = false;
  }
}

void serialEvent() {
  while (Serial.available()) {
    // get the new byte:
    char inChar = (char)Serial.read();
    // add it to the inputString:
    inputString += inChar;
    // if the incoming character is a newline, set a flag
    // so the main loop can do something about it:
    if (inChar == '\n') {
      stringComplete = true;
    }
  }
}

alb12

Personne n'a de solution?

fdufnews

Voir là: http://arduino.cc/en/Tutorial/StringComparisonOperators
et là : http://arduino.cc/en/Reference/StringObject

La petite phrase suivante, extraite du lien ci-dessus, peut expliquer ton problème:
Quote
Note that constant strings, specified in "double quotes" are treated as char arrays, not instances of the String class

Les chaines entre quotes ne sont pas considérées comme des instances de String, donc la comparaison ne fonctionne pas.
== ou .equals ne fonctionnent qu'avec des instances de String voir l'exemple cité au début de ma réponse.

Go Up