2016-11-07 4 views
-2

Gibt es eine Möglichkeit Strings zu vergleichen, die mit empfangenen Daten von seriell Port deklariert sind wie:C# - Wie Strings mit serialPort.ReadExisting vergleichen()

string hello = "hello"; 
string dataReceived = serialPort1.ReadExisting(); //the incoming data is "hello" 
bool comparisonResult = hello.Equals(dataReceived, StringComparison.Ordinal); 

if(comparisonResult == true) 
{ 
    //do something 
} 

Vielen Dank im Voraus!

+1

Was mit Ihrem aktuellen Code falsch? Sind Sie sicher, dass die Daten * genau * 'Hallo' sind? – Rob

+0

@Rob Yeahp überprüft, dass ich genau Hallo erhielt (auch Groß- und Kleinschreibung beachten), aber es registriert immer noch nicht, dass ich "Hallo" –

+0

erhalten habe, überprüfen Sie bitte im Debugger, ob es Leerzeichen oder Sonderzeichen wie '\ r' oder gibt '\ n' in' dataReceived'. –

Antwort

0

Ja, es ist ein Weg,

if (serialPort1.ReadExisting() == "hello") 
{ 
    // do something 
} 
+0

es funktioniert nicht, zeigte die empfangenen Daten an die TextBox, um die Daten zu überprüfen (das ist "Hallo"), aber es irgendwie noch nicht registriert als serialPort1.ReadExisting() == "Hallo". –

0

Edit: herausgefunden, warum es nicht funktioniert hat, was ich brauchte, war kultursensible Vergleiche

string hello = "hello"; 
string dataReceived = serialPort1.ReadExisting(); //incoming data is "hello" 
int comparisonResult = String.Compare(hello, dataReceived, true); 
//if comparisonResult is true, output is 0 

if (comparisonResult == 0) 
{ 
    //do something 
} 
+0

'String.Compare (a, b, true)' ist ein Vergleich zwischen Groß- und Kleinschreibung, kein kultursensitiver Vergleich. Wenn das für Sie funktioniert, muss einer der Strings etwas wie "Hallo" und der andere "Hallo" sein, die unterschiedlich sind. –

+0

@MarkLakata [link] (https://msdn.microsoft.com/en-us/library/cc165449.aspx) Ich war mir sehr sicher, dass ich die gleiche Zeichenfolge fallweise gesendet habe, vermutete, dass es etwas damit zu tun haben könnte die Register, mit denen er vergleicht. Trotzdem danke –