Nur Teile eines String vergleichen



  • Hallo,

    ich habe hier ein kleines Problem. Ich möchte einen Teil eines Strings in einer IF-Abfrage verwenden. Leider gibt es hier das Problem das der Vergleich nicht immer funktioniert.

    Hier mal ein Beispiel:

    for (int i = 0; i < RichEdit1->Lines->Count;
    		i++) {
    		if (RichEdit1->Lines->Strings[i]
    			== "AGI") {
    			ShowMessage("Erster Datensatz beginnt bei Zeile: " + IntToStr(i));
    		}
    		else {
    			ShowMessage("Noch kein Datensatz gefunden, Zeileninhalt -> " + RichEdit1->Lines->Strings[i]);
    			ShowMessage("Zeilenposition: " + IntToStr(i) + " von " + IntToStr(RichEdit1->Lines->Count));
    		}
    
    	}
    

    Wenn Zeile [i] jetzt den exakten Text "AGI" enthält klappt es. Kommt aber nach "AGI" noch weiterer Text funktioniert es nicht mehr.

    Hatte gehofft ich kann bei der IF-Abfrage so wie bei SQL "LIKE" oder sowas einbauen. Das klappt leider nicht.

    Wäre für Hilfe dankbar.

    Gruss

    Maik



  • Stichwort: SubString. Such mal hier, gibts einiges

    Oder noch besser:

    if( RichEdit1->Lines->Strings[i].Pos("AGI") > 0  )
        // gefunden
    

    grüssle 🙂



  • Und falls es immer am Anfang der Zeile stehen muss:

    if(RichEdit1->Lines->Strings[i].AnsiPos("AGI") == 1)
        // gefunden
    


  • Danke, genau das habe ich gesucht...


Anmelden zum Antworten