![]() |
Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen
Hallo,
mittels folgendem Code ermittle ich die Anzahl eines Suchbegriffes innerhalb eines Textes.
Delphi-Quellcode:
Damit wird aber z. B. der Suchbegriff "und" auch in "Kunde" gefunden.
Offset := 1;
max_Ende := length(Zeile); repeat akt_Pos := PosEx(SuchText, Zeile, Offset); If akt_Pos > 0 then begin If akt_Pos <= max_Ende then inc(Result); Offset := akt_Pos + 1; end; until akt_Pos = 0; end; Wie kann ich eine Suche nach "ganzem Wort" realisieren? Wichtig ist hierbei, dass alle Vorkommen innerhalb des Textes gezählt werden sollen. |
AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen
Du musst eben jeden Treffer noch weiter analysieren. Davor und dahinter sind dann je nach Definition eines ganzen Wortes eben nur Leer- und Satzzeichen oder Zeilenumbrüche erlaubt. Außerdem musst Du noch schauen, ob es sich evtl. um den Textanfang oder das Textende handelt.
|
AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen
Vielleicht ist ja
![]() |
AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen
Zitat:
|
AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen
Dann würden sich wohl noch die Verwendung von regulären Ausdrücken anbieten, ob das aber schneller ist als mit "searchbuf" wäre noch zu überprüfen.
|
AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen
Ich hab SearchBuf ausprobiert und es schaut ganz gut aus
nur wie kann ich jetzt feststellen welche Position der gefundene Zeiger im Text hat? Zitat:
|
AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen
Hallo,
versuch mal folgendes (auf Deine Problemstellung anzupassen):
Delphi-Quellcode:
Gruß
procedure TForm4.Button2Click(Sender: TObject);
var c, i, l : Integer; p, q : PAnsiChar; s : Integer; begin c := 0; i := 1; s := 'und'; l := Length (Memo1.Lines.Text); p := PAnsiChar (Memo1.Lines.Text); q := SearchBuf (p, l, i, i, s, [soDown, soWholeWord]); while q <> nil do begin Inc (c); i := q - p; q := SearchBuf (p, l, i, i, s, [soDown, soWholeWord]); end end; |
AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen
Zitat:
Delphi-Quellcode:
raugefunden.
i := q - p;
Aber warum muss es
Delphi-Quellcode:
lauten und nicht
i := q - p;
Delphi-Quellcode:
?
i := p - q;
|
AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen
Weil das Ergebnis dann negativ würde?
|
AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen
Zitat:
Sorry - ich bin mit Zeigern nicht so bewandert Meine Erklärung wäre, weil die Anfangsadresse des Textes kleiner ist, als die Adresse des 1. Suchbegriffes ?? |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:46 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