Autor Beitrag
Dibelius
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 64



BeitragVerfasst: So 01.04.07 16:40 
Hallo,

derzeit hantiere ich noch mit einer TRichEdit Komponente rum und möchte nun, dass im Text nach bestimmten Begriffen gesucht wird, wobei der Begriff genau passen muss. Ich mach das mit der FindText-Funktion

ausblenden Delphi-Quelltext
1:
RichEdit.FindText('KeyWord',i,TxtLength,[stWholeWord, stMatchCase] );					

soweit, so klar. Aber jetzt findet er nicht nur "KeyWord", sondern auch "_KeyWord" und "KeyWord_" und das darf nicht sein.
Wenn ich bei der Funktion den String auf 'KeyWord ' ändere, findet er gar nix mehr, obwohl nach dem Schlüsselwort immer ein Leerzeichen ist...

Die Frage ist nur, wie schließe ich den Unterstrich_ aus der Suche aus?
Danke im Voraus
IngoD7
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 629


D7
BeitragVerfasst: Mi 04.04.07 09:46 
user profile iconDibelius hat folgendes geschrieben:
Die Frage ist nur, wie schließe ich den Unterstrich_ aus der Suche aus?

Es ist nicht nur der Unterstrich, der diese "Schwierigkeiten" macht. Es ist quasi jedes Zeichen, das nicht gerade eine Ziffer oder einen Buchstaben darstellt.

Mit dem Leerzeichen verhält es sich ähnlich. Da es im Text von FindText unter bestimmten Voraussetzungen ignoriert wird, wird der Suchstring (mit angehängtem Leerzeichen) als stWholeWord nie gefunden.

Die Methode FindText darf man unter den von dir getroffenen Voraussetzungen wohl getrost vergessen.