Suchen in RichEdit
-
Hallo, ich habe folgendes Problem:
Ich habe eine RichEdit1, wo in mehreren Zeieln etwas drin steht, z.B. Filmtitel
Jetzt habe ich ein zweites RichEdit2 Fenster. hier gebe ich ein Wort ein. Dieses Wort soll in ReichEdit1 gesucht werden. Alle Treffer sollen in einem dritten RichEdit3 Fenster angezeigt werden.
Wie stelle ich das am Besten an? Kann mir jemand weiterhelfen?momentaner Quellcode:
if(edi_Suchen->Text != "") { if (edi_Suchen->Text == /*Wort in RichEdit1*/) { } else { MessageBox(NULL, "Wort nicht gefunden","Ergebnisse",MB_OK); } } else { MessageBox(NULL, "Bitte geben Sie einen Titel an!","Ergebnisse" ,MB_OK); }Gruß webid
-
Hallo
siehe die Methode TRichEdit::FindText.
bis bald
akari
-
ich habe mir das mal angeschaut, aber habe bei dem beispiel irgendwie nicht durchgesehen.
Am Besten ich erläutere es nochmal genauer.
In einem RichEdit-Fenster bzw. einer ListBox steht in jeder Zeile ein Filmtitel.
Jetzt möchte ich in einem Edit-Fenster den Titel bzw. ein Schlagwort eingeben. Dieses Wort soll mit den einzelnen Titeln verglichen werden.
In einem anderen RichEdit-Fenster sollen die Titel, in dem das Wort vorkommt, wiedergegeben werden.Wie mache ich das? Kann mir jemand einen Quellcode zum besseren Verständnis geben?
Vielen Dank im Voraus
Webid
-
webid schrieb:
In einem RichEdit-Fenster bzw. einer ListBox steht in jeder Zeile ein Filmtitel.
Was denn jetzt? Listbox oder Richedit? Wenn ListBox, dann musst du die einzelnen String durchsuchen. Wenn Richedit, siehe akaris Post.
Solltest du mit FindText Schwierigkeiten haben, dann zeig mal deine Ansätze und wir sehen, ob wir dir weiter helfen können.
-
Es ist ListBox
-
Hallo
bei ListBox siehe die die Eigenschaft TListBox::Items, insbesondere die Methode IndexOf(), wenn du eine ganze Zeile finden willst, oder das Array Strings, um die einzelnen Zeilen intern mit Pos() zu durchsuchen.
bis bald
akari
-
Danke für den Tip. Ich habe mal geschaut ob es ein Beispiel gibt. Habe aber nichts gefunden.
Hier mein Code. Komme irgendwie nicht weiter.
if(edi_Suchen->Text != "") //Schaue ob hier etwas steht { for(i=0;ListBox1->Items->Strings[i]!=""; i++) schaue in jedem String nach { for (j=0;Pos(j)!="";j++) { if (edi_Suchen->Text == ListBox1->Items->Strings->Pos(j)) ???????ß { } } } } else //wenn nichts steht, soll folgende Message ausgegeben werden. { MessageBox(NULL, "Bitte geben Sie einen Titel an!","Ergebnisse" ,MB_OK); }Was ist falsch, wie geht es besser?
-
Hallo
if (edi_Suchen->Text == ListBox1->Items->Strings->Pos(j)) ???????ßSchau dir nochmal an, welche Parameter Pos() hat, und welchen Rückgabewert.
diese Bedingung muß natürlich heißenif (ListBox1->Items->Strings->Pos(edi_Suchen->Text) > 0)bis bald
akari