AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Delphi Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen
Thema durchsuchen
Ansicht
Themen-Optionen

Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen

Ein Thema von Helmi · begonnen am 26. Jan 2013 · letzter Beitrag vom 22. Jun 2013
Antwort Antwort
Seite 1 von 3  1 23      
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#1

Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen

  Alt 26. Jan 2013, 20:40
Hallo,

mittels folgendem Code ermittle ich die Anzahl eines Suchbegriffes innerhalb eines Textes.

Delphi-Quellcode:
  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;
Damit wird aber z. B. der Suchbegriff "und" auch in "Kunde" gefunden.
Wie kann ich eine Suche nach "ganzem Wort" realisieren?
Wichtig ist hierbei, dass alle Vorkommen innerhalb des Textes gezählt werden sollen.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<

Geändert von Helmi (26. Jan 2013 um 20:52 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen

  Alt 26. Jan 2013, 21:00
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.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
bernerbaer
(Gast)

n/a Beiträge
 
#3

AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen

  Alt 26. Jan 2013, 21:01
Vielleicht ist ja StrUtils.SearchBuf das was Du suchst (Options: soWholeWord)
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#4

AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen

  Alt 26. Jan 2013, 21:10
Vielleicht ist ja StrUtils.SearchBuf das was Du suchst (Options: soWholeWord)
SearchBuf kannte ich schon - aber das liefert nur das erste Vorkommen - ich müsste es dann immer wieder aufrufen um alle Vorkommen zu finden, aber dann vermute ich, dass es sehr langsam wird
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
bernerbaer
(Gast)

n/a Beiträge
 
#5

AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen

  Alt 26. Jan 2013, 21:20
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.
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#6

AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen

  Alt 26. Jan 2013, 21:46
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 von Hilfe:
Wenn die Suche erfolgreich war, gibt SearchBuf einen Zeiger auf das erste Zeichen der Fundstelle in Buf zurück. Andernfalls wird nil (Delphi) bzw. NULL (C++) zurückgegeben.
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Volker Z.

Registriert seit: 3. Dez 2012
Ort: Augsburg, Bayern, Süddeutschland
419 Beiträge
 
Delphi XE4 Ultimate
 
#7

AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen

  Alt 26. Jan 2013, 22:04
Hallo,

versuch mal folgendes (auf Deine Problemstellung anzupassen):
Delphi-Quellcode:
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;
Gruß
Volker Zeller
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#8

AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen

  Alt 26. Jan 2013, 22:09
Hallo,

versuch mal folgendes (auf Deine Problemstellung anzupassen):
Delphi-Quellcode:
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;
Gruß
Danke für den Code - hab jetzt in der Zwischenzeit auch die Zeile i := q - p; raugefunden.

Aber warum muss es i := q - p; lauten und nicht i := p - q; ?
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.541 Beiträge
 
Delphi 11 Alexandria
 
#9

AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen

  Alt 26. Jan 2013, 22:12
Weil das Ergebnis dann negativ würde?
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Helmi
Helmi

Registriert seit: 29. Dez 2003
Ort: Erding, Republik Bayern
3.312 Beiträge
 
Delphi XE2 Professional
 
#10

AW: Suchbegriff als "ganzes Wort" innerhalb eines Textes suchen

  Alt 26. Jan 2013, 22:14
Weil das Ergebnis dann negativ würde?
Ja, aber warum?
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
??
mfg
Helmi

>> Theorie ist Wissen, dass nicht funktioniert - Praxis ist, wenn alles funktioniert und keiner weiss warum! <<
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:05 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz