Wie benutzt man die Methode FindText?



  • lordblacksheep schrieb:

    Ja Problem erkannt

    Anscheinend nicht 🙄

    Wenn der Such-String im angegebenen Bereich nicht vorhanden ist, gibt FindText -1 zurück.

    mfg, Micha!



  • Also hab ich geändert->

    if (zahl != -1) vorhanden = true;

    genauso müsste auch

    if (zahl == -1) vorhanden = false;

    gehen oder?
    (nur mit ja oder nein antworten)



  • Hallo

    Ja... oder einfacher

    int zahl=0;
    zahl = RichEdit2->FindText(Edit1->Text, StartPos, ToEnd, TSearchTypes()<<stWohleWord<<stMatchCase);
    if (zahl != -1)
    {
      Label1->Caption = "vorhanden";
    }
    else
    {
      Label1->Caption = "nicht vorhanden";}
    

    bis bald
    akari



  • ja



  • genau das hab ich erwartet. Ich hab den Code genau so drin. Doch es geht nicht!

    denn in der rtf-Datei stehen 2 Einträge:
    Test1
    Test2

    Wenn ich jetzt Test1 als Suchbegriff einsetzte -> "vorhanden" -> gut so!
    Wenn ich jetzt Test2 als Suchbegriff einsetzte -> "vorhanden" -> gut so!
    Wenn ich jetzt Test3 als Suchbegriff einsetzte -> "vorhanden" -> NICHT GUT!
    Wenn ich jetzt xxxxx als Suchbegriff einsetzte -> "vorhanden" -> NICHT GUT!

    noch mal der Code wie er orginal da steht!

    RichEdit2->Lines->LoadFromFile (pfad_rezeptedb);
    int StartPos = 0;
    int ToEnd = RichEdit2->FindText(Edit1->Text, usw, usw)
    if (zahl != -1) vorhanden = true;
    if (vorhanden) Label1->Caption "vorhanden";
    if (!vorhanden) Label1->Caption "nicht vorhanden";
    


  • Noch ein Zusatz, der Interessant ist!

    Zuerst etwas nicht vorhandenes eingebe, sagt er nicht vorhanden
    aber wenn ich einmal was vorhandenes habe, ist alles danach auch vorhanden, egal was ich eingebe!

    Wenn ich jetzt Test9 als Suchbegriff einsetzte -> "nicht vorhanden" -> gut so!
    Wenn ich jetzt Test1 als Suchbegriff einsetzte -> "vorhanden" -> gut so!
    Wenn ich jetzt Test9 als Suchbegriff einsetzte -> "vorhanden" -> NICHT GUT!
    Wenn ich jetzt xxxxx als Suchbegriff einsetzte -> "vorhanden" -> NICHT GUT!



  • hiho
    das ist klar
    vorhanden kann gar nicht false werden(ausser beim ersten mal, da bin ihc mir abernoch nicht sicher, poste mal alles worin vorhanden vorkommt)

    RichEdit2->Lines->LoadFromFile (pfad_rezeptedb);
    int StartPos = 0;
    int ToEnd = RichEdit2->FindText(Edit1->Text, usw, usw)
    if (zahl != -1) vorhanden = true;//und wenn zahl == -1?????
    if (vorhanden) Label1->Caption "vorhanden";
    if (!vorhanden) Label1->Caption "nicht vorhanden";
    

    überleg mal selber(die Lösung mein ich)
    mfg allison



  • Hallo,

    RichEdit1->Text = "Hallo Welt, das ist ein Test\n\nWie gehts?";
    int zahl=0;
    int StartPos = 0;
    int ToEnd = RichEdit1->Text.Length();
    
    zahl = RichEdit1->FindText(Edit1->Text, StartPos, ToEnd, TSearchTypes() << stWholeWord << stMatchCase);
    if (zahl != -1)
    {
      Label1->Caption = "vorhanden";
    }
    else
    {
      Label1->Caption = "nicht vorhanden";}
    
    // Eingabe: Welt = vorhanden
    // Eingabe: welt = nicht vorhanden (stMatchCase (Groß-und Kleinschreibung))
    // ...
    

    Hab's getestet, das geht :p

    mfg, Micha



  • hiho
    oder nimm akari's code, der stimmt(wie immer) 😉

    mfg allison



  • stimmt! Ich überleg doch immer, probier immer aus, während ihr antwortet. sry wenn ich nerve. Aber mit jedem Thread lern ich sehr viel dazu!



  • hiho
    klar, war ja nicht böse gemeint 😉
    aber: "learning by doing"^^
    mfg allison


Anmelden zum Antworten