Teilstring suchen



  • Ich habe einen Dialog, der eine Art Karteikarte aus einer Liste von Karteikarten anzeigt, in verschiedenen Edit Feldern. Nun will ich eine Suchfunktion implementieren, die folgendermassen funktioniert:
    ich lösche den Text aus einer der Editboxen und schreibe eine zu suchende Zeichenkette hinein, z.B. "Hans". Nun soll nach dem nächsten Eintrag der "Hans" enthält gesucht werden. Das klappt auch so wie ich es mir gedacht habe ganz wunderbar, nur wenn jetzt etwas gefunden wird und im Feld steht "Hans Meier", dann wird bei jedem weiteren Suchvorgang nach "Hans Meier" gesucht, nicht mehr bloss nach "Hans".
    Wie kann ich die Ursprünglich gesuchte Zeichenkette behlten. Also wenn ich nach "Hans" suche, "Hans Meier" erhalte, damit nihct zufrieden bin und daher nochmals aus "Suche" drücke das Dingens weiter nach "Hans" und nicht "Hans Meier" suchen lassen um so vielleicht "Hans- Georg Eiche" oder so zu finden.
    Mein Code in Auszügen:
    [cpp]
    void CVereinVersion0_2Dlg::OnBnClickedSuch()
    {
    bool bFound=false;

    UpdateData(true);
    string sSuche; // soll den zu Suchenden String aufnehmen
    sSuche=m_strHead;
    while(bFound!=true)
    {

    m_pCVerwaltung->records++;
    // Die Codezeilen für ergebnislose Suche habe ich hier weggelassen

    if((*(m_pCVerwaltung->records))->ShowHead().find(sSuche)!=string::npos)
    {

    m_strHeading=(*(m_pCVerwaltung->records))->ShowHead().c_str();
    UpdateData(false);
    bFound=true;
    continue;
    }
    }

    }



  • CODETAGS!!!!

    speicher den Suchstring doch einfach zwischen und lade ihn nach jedem Treffer neu.



  • nachdenken....



  • Es ist anzunehmen das dieser Beitrag per Edit mit Codetags versehen werden sollte aber versehentlich ein neuer aufgemacht wurde.

    Hier gehts weiter:

    http://c-plusplus.net/forum/viewtopic.php?t=53067


Anmelden zum Antworten