Strings in Strings suche ^^



  • Hi!

    Ich habe auf meiner Form 2 ListBoxen.

    Ich würde gerne alle Zeilen der 1. ListBox durchgehen und überprüfen ob sich in einer Zeile ein String befindet, der sich in der 2. ListBox befindet.

    ...wenn also ein Spielername einen bestimmten String enthällt, der auf einer Blacklist steht, soll dieser angezeigt werden.....

    Strings nach EINEM String durchsuchen ist nicht sehr schwer doch mehrere Strings nach mehreren Texten durchsuchen, dass kapier ich nicht.

    Danke 😃



  • Hallo

    Wenn du ersteres weißt, must du das Prinzip einfach in eine Schleife einlegen, um zweites zu erreichen.

    bis bald
    akari



  • :schland:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    for(int i=0;i<ListBox1->Items->Count;i++)
    {
       if(ListBox2->Items->IndexOf(ListBox1->Items->Strings[i])>-1) ListBox3->Items->Add(ListBox1->Items->Strings[i]);
    }
    }
    

    :schland:



  • Also soweit bin ich.

    String in Strings suchen (ungetestet), "ass" wird in RichEdit1 gesucht:

    int a = 0;
    
    while(x<RichEdit1->Lines->Count) // alle Namen durchgehen
    {
    
      int b = 0;
    
      while(b<RichEdit1->Lines->Strings[a].lenght()) // alle buchstaben des Namens durchgehen
      {
    
          if(RichEdit1->Lines->Strings[a].c_str()[b] == 'a'){
          if(RichEdit1->Lines->Strings[a].c_str()[b+1] == 's'){
          if(RichEdit1->Lines->Strings[a].c_str()[b+2] == 's'){
            ShowMessage("Badword gefunden!");
    
          }}}
    
      b++;
      }
    
    x++;
    }
    

    Aber wie suche ich jetzt nach mehreren Wörtern als nur nach "ass", die sich in einem anderem RichEdit befinden? 1 Zeile pro wort. 😕



  • @Schland, das funktioniert nur, wenn die Strings gleich sind, indexof vergleicht doch nur.

    Beispiel:
    Spielerliste:

    Marc
    Marcus
    Sascha
    Mike

    Badwords:
    "Ma",....

    Anzeige:
    Marc
    Marcus



  • Hallo

    du brauchst noch die AnsiString-Methode Pos

    bis bald
    akari



  • ok danke habs geschafft




Anmelden zum Antworten