Hallo Forum, da mir hier schon oft geholfen wurde wenn ich mich mal wieder an euch :) Ich hab ein kleines Problem in c++ (Borland c builder) Mir liegt ein String vor in der Form von z.b. "01X01......" Die Punkte erscheinen in dem richtigen String als ne kombination aus zahlen die mir von nem Messumformer gesendet werden... z.b ne Temperatur oder so... Nun möchte ich gern den empfangenen String auf die Kombination 01X01 überprüfen. Wenn in dem String in den letzten 5 positionen das 01X01 steht soll mir der rest von dem String in nem Label angezeigt werden. Nun kam ich da in der Hilfe vom Borland auf die Funktion SubString (int Index, int count)... klingt alles ganz logisch nur komm ich da mit irgendwie nich klar... die Funktion splittet also den String vom Anfang (index) bis zum gewählten Punkt (count) testweise sieht das bei mir so aus: String Test="01X010000022.5"; if(Test.SubString(Test.Length()-5,Test.Length())=="01X01") { lblTemp->Caption=Test.SubString(0,Test.Length()-5); } else { lblTemp->Caption=""; } das label zeigt mir halt nur nich das an was es machen soll :) Wo liegt mein Denkfehler? Danke schonmal für eure Hilfe Lg
Hi, > Nun möchte ich gern den empfangenen String auf die Kombination 01X01 > überprüfen. Wenn in dem String in den letzten 5 positionen das 01X01 > steht soll mir der rest von dem String in nem Label angezeigt werden. > > Nun kam ich da in der Hilfe vom Borland auf die Funktion SubString (int > Index, int count)... > > klingt alles ganz logisch nur komm ich da mit irgendwie nich klar... die > Funktion splittet also den String vom Anfang (index) bis zum gewählten > Punkt (count) > > testweise sieht das bei mir so aus: > > String Test="01X010000022.5"; Hmmm. Oben sagste in den letzten 5 Stellen soll dein 01x01 stehen und weiter unten sieht es eher für mich so aus als würdest du sie in den ersten fünf Stellen erwarten ? > if(Test.SubString(Test.Length()-5,Test.Length())=="01X01") Du prüfst über die Länge des Strings Test. Die SubString Funktion erwartet von Dir int index und int count. Also Anfangswert im String und Anzahl der Zeichen. ---> if(Test.SubString(Test.Length()-5 , 5) == "01X01") könnte klappen. Aber für mich sieht es eher so aus als würden diese Zeichen am Anfang stehen, also --> if(Test.SubString(0 , 5) == "01X01") Gruß
Mh stimmt auch irgendwie... hatte mich bissl an die binäre zählweise gehalten... da fängt man ja auch rechts mit 2^0 an... also müsste ich dann das ganze eher von linkjs anfangen... ich teste das mal :) lg
Jean Player schrieb: >> if(Test.SubString(Test.Length()-5,Test.Length())=="01X01") > > Du prüfst über die Länge des Strings Test. > Die SubString Funktion erwartet von Dir int index und int count. Also > Anfangswert im String und Anzahl der Zeichen. > ---> if(Test.SubString(Test.Length()-5 , 5) == "01X01") > könnte klappen. > Aber für mich sieht es eher so aus als würden diese Zeichen am Anfang > stehen, also --> if(Test.SubString(0 , 5) == "01X01") > > Gruß Vorsicht! Die VCL-Strings (AnsiString, WideString) sind nicht null-basiert d.h. die ersten fünf Zeichen erhält man mit str.SubString(1, 5)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.