ListView zeilen durchsuchen



  • Hi,

    Ich hab ein listview in mehrere Spalten unterteilt. und ich würde jetzt gerne aus der 2ten Spalte die Zeilennummer haben in dem ein bestimmtes Wort steht.
    (das wort kommt nur malmal in der spalte vor)

    Normalerweise würde das ganze teil mit ner for -schleife danach durchsuchen, aber gibt es nicht auch sowas wie IndexOf dabei? Ich weiß irgenwie nicht so recht wie ich das dabei verwenden muss.



  • Hallo

    IndexOf ist eine Methode von TStringList. Da die SubItems eines ListItems in einer TStringList zusammengefasst sind, kannst du also die SubItems eines ListItems nach einen Text durchsuchen lassen.
    Wenn du aber alle ListItems auf einen bestimmten Wert des 2. SubItems durchsuchen willst, must du schon die eigene For-Schleife nehmen.

    bis bald
    akari



  • mach doch eine Schleife und durchsuche die ganzen Zeilen und Spalten nach dem gesuchten Wort!

    String wort="test";
    
    for (int zeile=0;zeile<ListView1->Items->Count;zeile++)
    {
       if (ListView1->Items->Item[zeile]->Caption==wort) //---Spalte 0 durchsuchen
       {
            ShowMessage(String("Gefunden in Zeile: "+IntToStr(zeile)).c_str());
            break;
       }    
       for (int spalte=1;spalte<ListView1->Columns->Count;spalte++)//---restliche spalten durchsuchen
       {
           if (wort==ListView1->Items->Item[zeile]->Strings[spalte]) 
           {
                ShowMessage(String("Gefunden in Zeile: "+IntToStr(zeile)+" Spalte: "+IntToStr(spalte)).c_str());
                break;
           }
       }
    }
    


  • lieg ich falsch ? aber ich denke die restlichen Spalten beginnen bei 0.



  • Vor allem liegen sie, wie von akari schon gesagt, in den SubItems.
    ListView1->Items->Item[zeile]->Strings[spalte] kompiliert nicht mal.


Anmelden zum Antworten