Italia
Foro

In Richedit Text suchen

 

Frank
Tretter
Wie kann man in einem Richedit nach einem beliebigen Text suchen.
Hab leider bis jetzt noch nichts hier darüber gelesen.

Benutze WinXP und XProfan 8.

Bin per jede Aiuto dankbar
 
Seit 2008 endlich XProfan 10, ist einfach klasse
30.03.2007  
 




Nico
Madysa
Wie suchst du denn in normalen Edits? Ich würde einfach den Text mit GetText$() auslesen und dann InStr() nehmen.
 
Nico Madysa
30.03.2007  
 




Frank
Abbing
NICO! Asche auf dein Haupt...
Zum Suchen gibt es z.B. die Message EM_FINDTEXT.
 
30.03.2007  
 




Frank
Tretter

KompilierenMarkierenSeparieren
Startsuche& = 0--Ab hier wird gesucht
..
--Das ist die Suchroutine
n$ = Klaus--ist der zu suchende Text
Suchtext$ = GetText$(RichEdit&)--Text aus Richedit
DIM Bereich#,32000
clear Bereich#
String Bereich#,0 = Suchtext$
Gefunden& = MemPos(Bereich#,Startsuche&,n$)
Sendmessage(Richedit&,$00B1,Gefunden&,Gefunden&+Len(n$))Cursor setzen
setfocus(Richedit&)
Dispose Bereich#
Startsuche& = Gefunden&+Len(n$)--An dieser stelle soll dann weiter gesucht 
Seit 2008 endlich XProfan 10, ist einfach klasse
30.03.2007  
 



[tb]minimalbeispiel[/tb]
 
30.03.2007  
 




Frank
Tretter
Sorry, kenn mich noch nicht so aus. Hier der Code
KompilierenMarkierenSeparieren
Declare FileName$,RichEdit&,Ende&,Suchen&,Beenden&
Declare n$,Bereich#,Gefunden&,Startsuche&,Suchtext$
Startsuche& = 0
Ende&       = 0
*******************************************************************************************************************
cls
Suchen&   = Control(Button,Suchen,$40000000+$10000000+$10000,420,10,200,22,%hwnd,20000,%HINSTANCE)
Beenden&  = Control(Button,Ende,$40000000+$10000000+$10000,420,40,200,22,%hwnd,20001,%HINSTANCE)
RichEdit& = Create(RichEdit,%hwnd,,0,5,400,300)
RTF laden
FileName$ = LoadFile$(Als RTF öffnen,*.RTF)
RTF(LoadRTF,Richedit&,Filename$)
setfocus(Richedit&)
Tastatur und Maus abfragen

WhileNot Ende&

    Case Getfocus(Beenden&) : Ende& = 1

    If Getfocus(Suchen&)

        n$        = Klaus--Dieser Text soll gesucht werden(Nur zum Beispiel)
        Suchtext$ = GetText$(RichEdit&)--Text aus Richedit
        DIM Bereich#,32000
        clear Bereich#
        String Bereich#,0 = Suchtext$
        Gefunden& = MemPos(Bereich#,Startsuche&,n$)
        Startsuche& = Gefunden&+Len(n$)
        Sendmessage(Richedit&,$00B1,Gefunden&,Gefunden&+Len(n$))--Cursor setzen
        setfocus(Richedit&)
        Dispose Bereich#--Hatt ich vergessen

    EndIf

ENDWHILE


Ich möchte in grande Texten nach Wörtern suchen. kann ja sein daß das gesuchte Wort mehrmals vorkommt, deshalb soll man so lange suchen bis man die richtige Stelle gefunden hat.
 
Seit 2008 endlich XProfan 10, ist einfach klasse
30.03.2007  
 




Frank
Abbing
Das ist nicht sonderlich schwer:
KompilierenMarkierenSeparieren
Declare x&

If Getfocus(Suchen&)

    n$=Klaus--Dieser Text soll gesucht werden(Nur zum Beispiel)
    DIM Bereich#,16
    clear Bereich#
    x&=-1

    While 1

        Long bereich#,0=x&+1
        Long bereich#,4=-1
        Long bereich#,8=Addr(n$)
        x&=Sendmessage(Richedit&,$0438,1,bereich#)--EM_FINDTEXT (1=Flagparameter)
        Case x&=-1:BREAK
        Sendmessage(Richedit&,$00B1,x&,x&+Len(n$))--Cursor setzen
        SetFocus(Richedit&)
        Sleep 500

    EndWhile

    SetFocus(Richedit&)
    Dispose Bereich#--Hatt ich vergessen

EndIf


Bei den Flagparametern kannst du noch bestimmen, ob der Suchbegriffe exakt so stimmen muss (Klein/Grossbuchstaben), ob der Suchbegriff ein vollständiges Wort im Text sein muss, usw.
 
30.03.2007  
 




Frank
Tretter
Vielen Dank, genau das was ich gesucht habe.
Hast mir sehr weitergeholfen, jetzt kann ich an meinem Editor weiterbasteln.

Nochmals Danke an alle, gruß Fränki
 
Seit 2008 endlich XProfan 10, ist einfach klasse
30.03.2007  
 




Nico
Madysa

NICO! Asche auf dein Haupt...
Zum Suchen gibt es z.B. die Message EM_FINDTEXT.


Mag durchaus sein, ich würde trotzdem so suchen, da ich die Message jetzt erst kennen gelernt habe.
 
Nico Madysa
02.04.2007  
 




Frank
Abbing
Spricht nichts dagegen. Jedoch ist diese Methode nicht bei grossen File anzuraten, weil irgendwann der Speicher knapp wird. Dann sind zwei Kopien zeitgleich nicht ratsam.
 
02.04.2007  
 



Answer


Topictitle, max. 100 characters.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Posting  Font  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Topic-Options

5.167 Views

Untitledvor 0 min.
Rockford01.08.2024
RudiB.10.09.2022
Michael Hettner05.08.2020
Peter Max Müller13.11.2017
Di più...

Themeninformationen



Admins  |  AGB  |  Applications  |  Autori  |  Chat  |  Informativa sulla privacy  |  Download  |  Entrance  |  Aiuto  |  Merchantportal  |  Impronta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Giochi  |  Cerca  |  Support

Ein Projekt aller XProfaner, die es gibt!


Il mio XProfan
Private Notizie
Eigenes Ablageforum
Argomenti-Merkliste
Eigene Beiträge
Eigene Argomenti
Zwischenablage
Annullare
 Deutsch English Français Español Italia
Traduzioni

Informativa sulla privacy


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie