![]() |
Wort in tmemo finden und text markieren
Hallo ich möchte aus einem TMemo ein wort Finden
das mache ich so
Delphi-Quellcode:
Nun mehr sollen die alle zeichen die nach diesem Wort kommen markiert werden und zwar bis das Wort2 kommt.
procedure TForm1.Button6Click(Sender: TObject);
var MemoText,SuchStr: String; FundPos: Integer; begin MemoText:= Memo1.Text; SuchStr:= 'Wort'; FundPos:= Pos(SuchStr, MemoText); if FundPos = 0 then exit else ... end; Wie kann ich das realisieren? hat jemand einen Tip??? Wie erhalte ich die Anzahl der Zeichen bis zum wort2 ? |
AW: Wort in tmemo finden und text markieren
SelStart, SelLength und nicht vergessen, daß es 0-indiziert ist.
|
AW: Wort in tmemo finden und text markieren
Einfach nach dem Fund it PosEx() nach dem zweiten Wort suchen.
Delphi-Quellcode:
Word2 := PosEx( SuchStr2, MemoText, FundPos+1);
|
AW: Wort in tmemo finden und text markieren
Delphi-Quellcode:
Muss ich Word2 := PosEx( SuchStr2, MemoText, FundPos+1); bei memo1.Sellength:= Length(Suchstr); einsetzen?
Memo1.SetFocus;
Memo1.Selstart:= FundPos +4; [COLOR="Yellow"]Memo1.Sellength:= Length(SuchStr);[/COLOR] // WIe erhalte ich Hier die länge bis zum wort2? |
AW: Wort in tmemo finden und text markieren
Es wird der Index des 1. Buchstabens des 2. Suchwortes zurückgegeben.
Die Länge müsste dann dann Word2-1-FundPos; bzw. Word2-1-FundPos-Length(SuchStr) wenn zwichen Den Worten markiert werden soll; sein. |
AW: Wort in tmemo finden und text markieren
wenn ich es so einsetze dann markiert er nicht richtig
Delphi-Quellcode:
wo ist der fehler?
MemoText:= Memo1.Text;
SuchStr:= 'Wort1'; SuchStr2:= 'Wort2'; FundPos:= Pos(SuchStr, MemoText); FundPos2 := PosEx( SuchStr2, MemoText, FundPos+1); if FundPos = 0 then exit; //Wort nicht gefunden Memo1.SetFocus; Memo1.Selstart:= FundPos; Memo1.Sellength:= FundPos2-1-FundPos-Length(SuchStr); |
AW: Wort in tmemo finden und text markieren
Was bedeutet nicht richtig?
Ohne Wörter:
Delphi-Quellcode:
Mit Wörter:
Memo1.Selstart:= FundPos+Length(SuchStr);
Memo1.Sellength:= FundPos2-1-FundPos-Length(SuchStr);
Delphi-Quellcode:
Memo1.Selstart:= FundPos;
Memo1.Sellength:= FundPos2-1-FundPos; |
AW: Wort in tmemo finden und text markieren
Was hab ich wohl #2 geschrieben?
Delphi-Strings fangen standardmäßig bei 1 an (außer im NextGen), aber vergessen wir das. :wall: |
AW: Wort in tmemo finden und text markieren
wenn ich jetzt statt einem Wort1 --> Wort1/ der text soll markiert werden bis hier hin-->/
wie mache ich das dann? hier funktioniert der code nicht |
AW: Wort in tmemo finden und text markieren
SelStart ist 0-basiert ( wie Frank schon bemerkt hat) d.h. man muss von der Position im String 1 abziehen.
Delphi-Quellcode:
Memo1.Selstart:= FundPos-1;
Memo1.Sellength:= FundPos2-1-FundPos; |
Alle Zeitangaben in WEZ +1. Es ist jetzt 02:31 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz